CN111498212B - Robotic system for handling out-of-order arriving packages - Google Patents

Robotic system for handling out-of-order arriving packages Download PDF

Info

Publication number
CN111498212B
CN111498212B CN202010221015.6A CN202010221015A CN111498212B CN 111498212 B CN111498212 B CN 111498212B CN 202010221015 A CN202010221015 A CN 202010221015A CN 111498212 B CN111498212 B CN 111498212B
Authority
CN
China
Prior art keywords
package
plan
parcel
platform
robotic system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010221015.6A
Other languages
Chinese (zh)
Other versions
CN111498212A (en
Inventor
鲁仙·出杏光
德尼斯·卡努尼考夫
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.)
Individual
Original Assignee
Individual
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
Priority claimed from US16/428,843 external-priority patent/US10696494B1/en
Application filed by Individual filed Critical Individual
Publication of CN111498212A publication Critical patent/CN111498212A/en
Application granted granted Critical
Publication of CN111498212B publication Critical patent/CN111498212B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65BMACHINES, APPARATUS OR DEVICES FOR, OR METHODS OF, PACKAGING ARTICLES OR MATERIALS; UNPACKING
    • B65B57/00Automatic control, checking, warning, or safety devices
    • B65B57/10Automatic control, checking, warning, or safety devices responsive to absence, presence, abnormal feed, or misplacement of articles or materials to be packaged
    • B65B57/14Automatic control, checking, warning, or safety devices responsive to absence, presence, abnormal feed, or misplacement of articles or materials to be packaged and operating to control, or stop, the feed of articles or material to be packaged

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

A robotic system for arranging parcels at a destination according to a stacking sequence. The robotic system uses a storage area to temporarily store out-of-order arriving packages until they are the next package in the sequence to be placed at the destination. The robotic system processes an incoming package, determines whether the package is the next package in the sequence to be placed at the destination, and if so, places the package at the destination. On the other hand, if the package is not the next package in the sequence to be placed at the destination, the package is stored in the storage area. The package is shipped to the destination when the package in the storage area is the next package in the sequence to be placed at the destination. By using the temporary storage to store out-of-order packages, the robotic system eliminates the need to receive the packages in a stacked order, which also eliminates the need for a sequencer.

Description

Robotic system for handling out-of-order arriving packages
The application is a divisional application of China application CN202010205038.8, the application date is 3, 20 and 2020, and the name of the invention is 'a robot system for processing packages arriving out of sequence'.
Cross Reference to Related Applications
This application contains subject matter related to a concurrently filed U.S. patent application entitled "a rolling SYSTEM WITH PACKING MECHANISM" by Rosen n. diankov and Denys kanuinikov, assigned to Mujin corporation, identified by attorney docket No. 131837-8005.US01, and incorporated herein by reference in its entirety.
This application contains subject matter related to co-filed U.S. patent application entitled "a rolling SYSTEMWITH DYNAMIC PACKING MECHANISM" by Rosen n. diankov and Denys kanuinikov, assigned to Mujin corporation and identified by attorney docket No. 131837-8006.US01, and incorporated herein by reference in its entirety.
This application contains subject matter related to a concurrently filed U.S. patent application entitled "a rolling SYSTEM WITH ERROR DETECTION AND DYNAMIC PACKING MECHANISM" by Roscn n, diankov and Denys, kanonikov, assigned to Mujin corporation and identified by attorney docket number 131837-8007, US01, and incorporated herein by reference in its entirety.
This application contains subject matter related to the concurrently filed U.S. patent application entitled "rolling SYSTEM FOR rolling packaging US USING REAL read-TIME PLACEMENT SIMULATION" by Roscn n.diankov and Denys kanonikov, assigned to Mujin corporation, identified by attorney docket No. 131837-8009.US01, and incorporated herein by reference in its entirety.
Technical Field
The present technology relates generally to robotic systems and, more particularly, to systems, processes, and techniques for packaging objects.
Background
With the ever-increasing performance and decreasing cost, many robots (e.g., machines configured to automatically/autonomously perform physical actions) are now widely used in many areas. For example, robots may be used to perform a variety of tasks (e.g., manipulating or handling objects across space) in manufacturing and/or assembly, packaging and/or wrapping, transportation and/or shipping, and the like. In performing tasks, the robot may replicate human actions, replacing or reducing human involvement otherwise required to perform dangerous or repetitive tasks.
However, despite the continuing advances in technology, robots often lack the complexity necessary to replicate the human sensitivity and/or adaptability needed to perform more complex tasks. For example, robots have historically lacked the granularity and flexibility of control to account for deviations or uncertainties in the actions performed that may be caused by a variety of real-world factors. Accordingly, there remains a need for improved techniques and systems for controlling and managing aspects of a robot to accomplish tasks despite a variety of real world factors.
In the packaging industry, conventional systems use an offline packaging simulator to predetermine the packaging sequence/arrangement. Conventional packing simulators process object information (e.g., box shape/size) to generate a packing plan. The packing plan may specify and/or require a specific placement position/pose, a predefined order of placement, and/or a predetermined movement plan for the object (e.g., pallet, bin, cage, box, etc.) at the destination. From the generated packing plan, a conventional packing simulator derives source requirements (e.g., order and/or placement of objects) that match or implement the packing plan. Because the packing plan is developed offline in conventional systems, the plan is independent of actual packing operations/conditions, object arrivals, and/or other system implementations. Thus, the overall operation/implementation would require that the received packages (e.g., at the start/pick location) follow a fixed order that matches the predetermined packaging plan. As such, conventional systems may not be able to accommodate deviations in received parcels (e.g., different orders, locations, and/or orientations), unexpected errors (e.g., collisions and/or lost pieces), real-time packaging requirements (e.g., received orders), and/or other real-time factors.
Conventional systems can group and pack objects according to a strict predetermined plan. For example, conventional systems carry and place objects (e.g., boxes or cases) onto pallets according to a predetermined motion plan. In this case, conventional systems require that all objects at the source location have the same size/type and/or be approached according to a known order. For example, a conventional system would require that the objects arrive at the pick-up location (by, for example, a conveyor) according to a fixed sequence. In addition, for example, the conventional system would require that the object at the pickup position be placed at the specified position according to a predetermined posture. As such, conventional systems require one or more operations to order or place objects at the source according to a predetermined order/arrangement (e.g., prior to a packing operation). Providing packages to a robot in a specific order is a difficult task for humans. There are some machines (e.g., shuttle sequencing buffers) that sequence packages before they are passed to the robot for further placement. However, these machines can be very expensive, require maintenance, and consume significant resources (such as space and power).
Drawings
FIG. 1 is an illustration of an exemplary environment in which a robotic system having a 3-dimensional packaging mechanism may operate.
Fig. 2 is a block diagram illustrating a robotic system in accordance with one or more embodiments of the present technique.
Fig. 3A is an illustration of a discretized object in accordance with one or more embodiments of the present technique.
Fig. 3B is an illustration of a discretized packaging platform in accordance with one or more embodiments of the present technology.
Fig. 3C is a diagram illustrating a placement planning process in accordance with one or more embodiments of the present technology.
Fig. 4A-4C are diagrams of stacking rules, according to one or more embodiments of the present technology.
Fig. 5A is an illustration of an exemplary stacking plan in accordance with one or more embodiments of the present technology.
Fig. 5B is an illustration of a stacking sequence in accordance with one or more embodiments of the present technology.
Fig. 6 is a flow diagram for operating the robotic system of fig. 1 in accordance with one or more embodiments of the present technique.
FIG. 7 is an exemplary environment in which a robotic system may operate to process packages arriving out of order.
Fig. 8 is a block diagram illustrating an example of various stages in placing an available package on a task location according to various embodiments.
FIG. 9 is a flow diagram of a process for placing available packages on task locations using a temporary storage area, according to various embodiments.
FIG. 10 is a flow diagram of another process for placing available packages on task locations using a temporary storage area, according to various embodiments.
FIG. 11 is a flow diagram of another process for placing available packages on task locations using temporary storage areas, according to various embodiments.
Detailed Description
Systems and methods for a robotic system having a packaging mechanism are described herein. Robotic systems configured in accordance with some embodiments (e.g., an integrated system of devices performing one or more specified tasks) provide improved packaging and storage efficiency by deriving optimal storage locations for objects (packages) and stacking them separately. In one example, the robotic system may organize the packages at a destination (e.g., pallet, bin, cage, box, etc.) based on a stacking plan regardless of the order in which the packages are provided to the robot. The stacking plan typically includes the order or sequence in which the packages are placed on the pallet, as well as other details, such as the specific placement position/posture and/or predetermined movement plan of the packages on the pallet, which are described below. The robotic system may implement a stacking plan for placing packages on pallets in a specified arrangement without providing the packages to the robotic system in a stacking order. For example, when a package arrives (e.g., one by one on a conveyor belt), the robotic system identifies the package, e.g., based on a barcode on the package, determines a stacking order of the package, places the package on a pallet if the package is the next package in the order to be placed on the pallet, otherwise stores the package in a storage area (e.g., one of a plurality of storage racks) for later placement on the pallet. When the package stored in the storage area is the package to be placed on the pallet next in the sequence, the robotic system retrieves the package from the storage area and places the package on the pallet according to the stacking plan. By using a temporary storage area to store packages (e.g., out-of-order packages) and process them at a later time to place them on pallets in a stacked order, the robotic system eliminates the need for receiving packages in a stacked order, which also eliminates the need for a sequencer. Thus, by minimizing resource consumption, the disclosed embodiments result in an improved robotic system.
The robotic systems described herein may generate packaging plans during system operation. The robotic system may generate real-time and/or dynamic packaging plans based on a variety of real-time conditions during system operation. Real-time conditions may include currently existing or persistent conditions (such as actual source order/position/pose of the object), object conditions and/or requirements, placement requirements, and/or other real-time factors. The robotic system may generate the packaging plan in real-time, such as in response to a triggering event (e.g., received order/request, shipping schedule, and/or operator input), according to current/ongoing conditions and factors at the time of the packaging plan processing. In some embodiments, a packing plan may be generated and/or adjusted dynamically (e.g., after one or more operations (such as actual packing operations) are initially started), such as in response to corresponding events (e.g., re-evaluating timing, packing/handling errors (such as collisions or lost pieces), and/or other dynamic conditions occurring).
Unlike conventional systems, the robotic systems described herein may generate placement plans in real-time according to current/field conditions (e.g., source order/position/pose of objects, object conditions and/or requirements, etc.). In some embodiments, the robotic system may generate the packing plan based on a discretization mechanism (e.g., a process, a circuit, a function, and/or a routine). For example, a robotic system may use a discretization mechanism to describe the physical size/shape and/or target location of an object in terms of discretized cells (i.e., one discrete area/space). The robotic system may generate a discretized object profile that describes a desired object using discretized cells and/or a discretized destination profile that describes a target location (e.g., a surface on the top of a pallet and/or a space/bottom surface inside a bin/case/box). Thus, the robotic system may transform a continuous real world space/region into computer readable digital information. Moreover, discretizing the data can allow for a reduction in computational complexity for describing parcel footprint areas and for comparing multiple parcel placements. For example, instead of a real-world decimal, the wrap size may correspond to an integer number of discretized cells, which makes mathematical calculations easier.
In some embodiments, the robotic system may generate a packing plan based on determining the grouping of objects. The grouping of objects may be based on object descriptions (such as customer-specified priorities), object frangibility metrics (e.g., supported weight limits), object weight, object height, object type, and/or other aspects of the object. The robotic system may use the object groupings to generate and evaluate a two-dimensional (2D) placement plan including one or more object groupings. The robotic system may select a 2D placement plan that satisfies one or more conditions/rules and convert the selected 2D placement plan into a three-dimensional (3D) mapping result. The 3D mapping result may describe the height of the 2D placement plan, such as from the height measurements of the objects included in the 2D placement plan and their relative positions within the layer. The robotic system may evaluate the 3D mapping results in a vertical order/sequence to generate a vertically ordered 3D placement plan that includes the 2D placement plan. In some embodiments, the robotic system may generate a 2D/3D placement plan for objects in an initial state (e.g., before placing any objects in the destination area) and/or for objects that remain in a non-packed state (e.g., after one or more objects have been placed in the destination area). Details regarding object grouping and placement planning are described below.
The robotic system described below may use a simplified and streamlined processing architecture/sequence for implementation. For example, a robotic system (through, for example, a consumer computing device, such as a desktop computer, server, etc.) may generate a packaging plan based on real-time needs (e.g., received orders) and/or real-time availability (e.g., a shipment inventory (manifest) of incoming and/or currently accessible objects) without utilizing traditional sequencers and simulators. When utilized in an offline environment, such as to replace traditional sequencers and simulators, the robotic system may provide an offline packaging plan using a simpler and cheaper solution.
Thus, the robotic system may improve the efficiency, speed, and accuracy of packing objects based on adapting to real-time conditions. For example, the system described herein may generate a placement plan that matches/resolves current needs (e.g., received orders), current status of packages (e.g., location, orientation, and/or volume/availability), and/or real-time status of previously stacked/placed packages. In this way, the robotic system may receive and package parcels in a variety of different/unexpected amounts, positions, orientations, and/or sequences.
Further, the robotic system may reduce assembly costs by eliminating one or more operations, machines (e.g., sequential buffers), and/or human assistance that would otherwise be necessary in conventional systems to sequence or place objects at the source and/or to perform packing operations (e.g., error handling). By generating a packaging plan based on the existing package status (e.g., number, location, and/or orientation), the robotic system eliminates the need to reorganize or sequence packages along with associated machine/human operations to meet the requirements of conventional systems.
In the following description, numerous specific details are set forth to provide a thorough understanding of the presently disclosed technology. In other embodiments, the techniques introduced herein may be practiced without these specific details. In other instances, well-known features, such as specific functions or routines, are not described in detail in order to avoid unnecessarily obscuring the present disclosure. Reference in this specification to "an embodiment" or "one embodiment" or similar language means that a particular feature, structure, material, or characteristic described is included in at least one embodiment of the disclosure. Thus, the appearances of such phrases in this specification are not necessarily all referring to the same embodiment. On the other hand, such references are not necessarily mutually exclusive. Furthermore, the particular features, structures, materials, or characteristics may be combined in any suitable manner in one or more embodiments. It is to be understood that the various embodiments shown in the figures are merely illustrative representations and are not necessarily drawn to scale.
For the sake of brevity, several details describing structures or processes that are well known and often associated with robotic systems and subsystems and that may unnecessarily obscure some important aspects of the disclosed technology are not set forth in the following description. Furthermore, while the following disclosure sets forth several embodiments of different aspects of the technology, several other embodiments may have configurations or components different from those described in this section. Accordingly, the disclosed technology may have other embodiments with additional elements or without several of the elements described below.
Many embodiments or aspects of the disclosure described below may be in the form of computer or processor executable instructions, including routines executed by a programmable computer or processor. One skilled in the relevant art will appreciate that the disclosed techniques can be practiced on computer or processor systems other than those shown and described below. The techniques described herein may be embodied in a special purpose computer or data processor that is specifically programmed, configured, or constructed to perform one or more of the computer-executable instructions described below. Thus, the terms "computer" and "processor" as used generally herein refer to any data processor and may include internet appliances and hand-held devices (including palm-top computers, wearable computers, cellular or mobile phones, multi-processor systems, processor-based or programmable consumer electronics, network computers, mini-computers, and the like). The information processed by these computers and processors may be presented at any suitable display medium, including a Liquid Crystal Display (LCD). Instructions for performing computer or processor-executable tasks may be stored in or on any suitable computer-readable medium including hardware, firmware, or a combination of hardware and firmware. The instructions may be contained in any suitable memory device, including, for example, a flash drive and/or other suitable medium.
The terms "coupled" and "connected," along with their derivatives, may be used herein to describe structural relationships between components. It should be understood that these terms are not intended as synonyms for each other. Rather, in particular embodiments, "connected" may be used to indicate that two or more elements are in direct contact with each other. Unless otherwise stated in context, the term "coupled" may be used to indicate that two or more elements are in direct or indirect (with other intervening elements between them) contact each other, or that two or more elements cooperate or interact with each other (e.g., as in a causal relationship, such as for signal transmission/reception or for function calls), or both.
Suitable environment
Fig. 1 is an illustration of an example environment in which a robotic system 100 having a packaging mechanism may operate. The robotic system 100 may include and/or communicate with one or more units (e.g., robots) configured to perform one or more tasks. Aspects of the packing mechanism may be practiced or implemented by various units.
For the example shown in fig. 1, the robotic system 100 may include an unloading unit 102, a handling unit 104 (e.g., a palletizing robot and/or a pick-up robot), a transport unit 106, a loading unit 108, or a combination thereof, located in a warehouse or a distribution/shipping hub. Each of the units in the robotic system 100 may be configured to perform one or more tasks. The tasks may be combined in sequence to perform operations that achieve the goals, such as unloading objects from trucks or vans and storing them in a warehouse, or unloading objects from storage locations and preparing them for shipment. As another example, a task may include placing an object on a target location (e.g., on top of a pallet and/or inside a bin/cage/box/case). As described below, the robotic system may derive a plan for placing and/or stacking objects (e.g., a placement location/orientation, a sequence for handling objects, and/or a corresponding motion plan). Each of the units is configured to perform a series of actions (e.g., operate one or more components thereof) to perform a task.
In some embodiments, the task may include manipulating (e.g., moving and/or reorienting) a target object 112 (e.g., one of a package, box, case, cage, pallet, etc., corresponding to the task being performed) from a starting location 114 to a task location 116. For example, the unloading unit 102 (e.g., an unpacking robot) may be configured to carry the target object 112 from a location in a vehicle (e.g., a truck) to a location on a conveyor belt. Additionally, the handling unit 104 may be configured to handle the target object 112 from one location (e.g., a conveyor belt, pallet, or bin) to another location (e.g., a pallet, bin, etc.). As another example, the handling unit 104 (e.g., a palletizing robot) may be configured to handle target objects 112 from a source location (e.g., a pallet, a pick area, and/or a conveyor) to a destination pallet. Upon completion of the operation, the transport unit 106 may transport the target object 112 from the area associated with the handling unit 104 to the area associated with the loading unit 108, and the loading unit 108 may transport the target object 112 (by, for example, moving a pallet carrying the target object 112) from the handling unit 104 to a storage location (e.g., a location on a shelf). Details regarding the tasks and associated actions are described below.
For illustrative purposes, the robotic system 100 is described in the context of a shipping center; however, it should be understood that the robotic system 100 may be configured to perform tasks in other environments/for other purposes (such as for manufacturing, assembly, packaging, healthcare, and/or other types of automation). It should also be understood that the robotic system 100 may include other units not shown in fig. 1, such as manipulators, service robots, modular robots, and the like. For example, in some embodiments, the robotic system 100 may include a de-palletizing unit for transporting objects from a cage or pallet onto a conveyor or other pallet, a container exchange unit for transporting objects from one container to another, a packing unit for wrapping objects, a sorting unit for grouping objects according to one or more characteristics of the objects, a pick-up unit for manipulating (e.g., sorting, grouping, and/or transporting) the objects differently according to one or more characteristics of the objects, or a combination thereof.
Suitable system
Fig. 2 is a block diagram illustrating a robotic system 100 in accordance with one or more embodiments of the present technique. In some embodiments, for example, the robotic system 100 (e.g., at one or more of the units and/or robots described above) may include electronic/electrical devices, such as one or more processors 202, one or more storage devices 204, one or more communication devices 206, one or more input-output devices 208, one or more actuation devices 212, one or more transport motors 214, one or more sensors 216, or a combination thereof. The various devices may be coupled to one another through wired and/or wireless connections. For example, the robotic system 100 may include a bus, such as a system bus, a Peripheral Component Interconnect (PCI) bus or PCI express bus, a hypertransport or Industry Standard Architecture (ISA) bus, a Small Computer System Interface (SCSI) bus, a Universal Serial Bus (USB), an IIC (I2C) bus, or an Institute of Electrical and Electronics Engineers (IEEE) standard 1394 bus (also referred to as a "firewire"). Additionally, for example, the robotic system 100 may include a bridge, adapter, processor, or other signal-related device for providing a wired connection between devices. The wireless connection may be based on, for example, a cellular communication protocol (e.g., 3G, 4G, LTE, 5G, etc.), a wireless Local Area Network (LAN) protocol (e.g., wireless fidelity (WIFI)), a peer-to-peer or inter-device communication protocol (e.g., bluetooth, Near Field Communication (NFC), etc.), an internet of things (IoT) protocol (e.g., NB-IoT, LET-M, etc.), and/or other wireless communication protocols.
The processor 202 may include a data processor (e.g., a Central Processing Unit (CPU), a special purpose computer, and/or an on-board server) configured to execute instructions (e.g., software instructions) stored on a storage device 204 (e.g., a computer memory). In some embodiments, the processor 202 may be included in a separate/independent controller operatively coupled to the other electronic/electrical devices shown in fig. 2 and/or the robotic unit shown in fig. 1. Processor 202 may implement program instructions that control/interact with other devices, causing robotic system 100 to perform actions, tasks, and/or operations.
The storage 204 may include a non-transitory computer-readable medium having program instructions (e.g., software) stored thereon. Some examples of storage 204 may include volatile memory (e.g., cache and/or Random Access Memory (RAM)) and/or non-volatile memory (e.g., flash memory and/or a disk drive). Other examples of storage 204 may include portable memory drives and/or cloud storage.
In some embodiments, the storage device 204 may be used to further store and provide access to processing results and/or predetermined data/thresholds. For example, the storage device 204 may store master data 252 that includes a description of objects (e.g., boxes, cases, and/or products) that may be manipulated by the robotic system 100. In one or more embodiments, the master data 252 may include the size, shape (e.g., templates of potential poses and/or computer-generated models for identifying objects in different poses), color schemes, images, identifying information (e.g., barcodes, Quick Response (QR) codes, logos, etc., and/or their intended locations), expected weights, other physical/visual characteristics, or a combination thereof, of the objects expected to be manipulated by the robotic system 100. In some embodiments, the master data 252 may include information related to the manipulation of the objects, such as a center of mass (CoM) location on each of the objects, expected sensor measurements corresponding to one or more actions/operations (e.g., for force, torque, pressure, and/or contact measurements), or a combination thereof. Additionally, for example, the storage device 204 may store object tracking data 254. In some embodiments, object tracking data 254 may include a record of the scanned or manipulated object. In some embodiments, the object tracking data 254 may include imaging data (e.g., photographs, point clouds, live video feeds, etc.) of the object at one or more locations (e.g., designated pick or drop locations and/or conveyor belts). In some embodiments, object tracking data 254 may include the position and/or orientation of an object at one or more locations.
The communication device 206 may include circuitry configured to communicate with an external or remote device over a network. For example, the communication device 206 may include a receiver, transmitter, modulator/demodulator (modem), signal detector, signal encoder/decoder, connector port, network card, and the like. The communication device 206 may be configured to send, receive, and/or process electrical signals according to one or more communication protocols (e.g., Internet Protocol (IP), wireless communication protocols, etc.). In some embodiments, the robotic system 100 may use the communication device 206 to exchange information between units of the robotic system 100 and/or to exchange information with systems or devices external to the robotic system 100 (e.g., for reporting, data collection, analysis, and/or troubleshooting purposes).
Input-output devices 208 may include user interface devices configured to communicate information to and/or receive information from a human operator. For example, input-output devices 208 may include a display 210 and/or other output devices for communicating information to a human operator (e.g., speakers, haptic circuitry, or haptic feedback devices, etc.). Additionally, input-output devices 208 may include control or receiving devices such as a keyboard, mouse, touch screen, microphone, User Interface (UI) sensors (e.g., a camera for receiving motion commands), wearable input devices, and the like. In some embodiments, the robotic system 100 may use the input-output device 208 to interact with a human operator in performing an action, task, operation, or a combination thereof.
The robotic system 100 may include physical or structural members (e.g., robotic manipulator arms) connected at joints for movement (e.g., rotational and/or translational displacement). The structural members and joints may form a kinematic chain configured to manipulate an end effector (e.g., gripper) configured to perform one or more tasks (e.g., gripping, spinning, welding, etc.) depending on the use/operation of the robotic system 100. The robotic system 100 may include actuation devices 212 (e.g., motors, actuators, wires, artificial muscles, electroactive polymers, etc.) configured to drive or manipulate (e.g., displace and/or reorient) a structural member with respect to or at a corresponding joint. In some embodiments, the robotic system 100 may include a transport motor 214 configured to transport a corresponding unit/undercarriage thereto.
The robotic system 100 may include sensors 216 configured to obtain information for performing tasks, such as manipulating structural members and/or transporting robotic units. The sensors 216 may include devices configured to detect or measure one or more physical characteristics of the robotic system 100 (e.g., the state, condition, and/or position of one or more structural members/joints thereof) and/or one or more physical characteristics of the surrounding environment. Some examples of sensors 216 may include accelerometers, gyroscopes, force sensors, strain gauges, tactile sensors, torque sensors, position encoders, and the like.
In some embodiments, for example, the sensor 216 may include one or more imaging devices 222 (e.g., a visual and/or infrared camera, a 2D and/or 3D imaging camera, a distance measuring device such as a lidar or radar, etc.) configured to detect the surrounding environment. The imaging device 222 may generate a representation of the detected environment that may be processed through machine/computer vision (e.g., for automated inspection, robotic guidance, or other robotic applications), such as a digital image and/or a point cloud. As described in more detail below, the robotic system 100 (via, for example, the processor 202) may process the digital image and/or the point cloud to identify the target object 112 of fig. 1, the starting location 114 of fig. 1, the task location 116 of fig. 1, a pose of the target object 112, a confidence measure with respect to the starting location 114 and/or the pose, or a combination thereof.
For manipulating the target object 112, the robotic system 100 (via, for example, the various circuits/devices described above) may capture and analyze images of a designated area (e.g., a pickup location, such as a truck interior or on a conveyor belt) to identify the target object 112 and its starting location 114. Similarly, the robotic system 100 may capture and analyze an image of another designated area (e.g., a drop location for placing objects on a conveyor, a location for placing objects inside containers, or a location on a pallet for stacking purposes) to identify the task location 116. For example, the imaging device 222 may include one or more cameras configured to generate images of the pick-up area and/or one or more cameras configured to generate images of the task area (e.g., the drop zone). Based on the captured images, the robotic system 100 may determine a starting position 114, a task position 116, associated gestures, a packing/placement plan, a handling/packing sequence, and/or other processing results, as described below. Details regarding the packing algorithm are described below.
In some embodiments, for example, the sensors 216 may include position sensors 224 configured to detect the position of structural members (e.g., robotic arms and/or end effectors) and/or corresponding joints of the robotic system 100. The robotic system 100 may use the position sensors 224 to track the position and/or orientation of the structural members and/or joints during performance of the task.
Discretized model processing
Fig. 3A and 3B are diagrams of discretized data for planning and packaging an object in accordance with one or more embodiments of the present technology. Fig. 3A shows a discretized object and fig. 3B shows a discretized packing platform for packing of the object and its planning. For example, the robotic system 100 of fig. 1 (via, e.g., the processor 202 of fig. 2) may map continuous surfaces/edges of real-world objects (e.g., parcels, pallets, and/or other objects associated with a task) into discrete counterparts (e.g., units of length and/or units of area). Additionally, the robotic system 100 may include a discretized model/representation of the expected object stored in the master data 252 of fig. 2.
In some embodiments, as shown in fig. 3A, the robotic system 100 may use a discretized object model 302 to plan/derive a stacked placement of objects. The discretized object model 302 (shown using dashed and dotted lines) can represent an external physical size, shape, edge, surface, or combination thereof, of a known and/or expected object (e.g., a package, box, case, etc.) in terms of discretized elements (e.g., unit length). In some embodiments, as shown in fig. 3B, the robotic system 100 may use one or more discretized platform models 304 to plan/derive stacked placements of objects. Discretized platform model 304 can represent a placement surface (e.g., a top surface of a pallet) according to discretized cells. In some embodiments, the discretization cell can include a length that is preset by a system operator, a system designer, a predetermined input/setting, or a combination thereof.
In some embodiments, discretized platform model 304 can include an overhead view of one or more standard-sized pallets (e.g., 1.1m by 1.1m pallets). Thus, the discretized platform model 304 can correspond to a pixelated 2D representation of the top surface of the pallet along a horizontal plane (e.g., an x-y plane) in accordance with the grid system utilized by the robotic system 100. In some embodiments, the discretized object model 302 can include a top view (e.g., an x-y plane, as shown on the left side of fig. 3) and/or a horizontal/cross-sectional view (e.g., an x-y plane, as shown on the right side) of an object that is expected/known by the robotic system 100. Thus, the discretized object model 302 can correspond to a pixelated 2D/3D representation of the object.
As an illustrative example, the robotic system 100 may describe the area/surface of the target object (via, for example, the discretized object model 302) and the loading platform (via, for example, the discretized platform model 304) using unit pixels 310 (e.g., polygons, such as squares, having one or more dimensions according to discretized cells). Thus, the robotic system 100 may pixilate the object and loading platform along the x-y axis. In some embodiments, the size of the unit pixel 310 (e.g., discretized cell) can vary depending on the size of the object and/or the size of the loading platform. The size of the unit pixel 310 may also be adjusted (by, for example, preset rules/equations and/or operator selection) to balance the required resources (e.g., computation time, required memory, etc.) with packaging accuracy. For example, as the size decreases, the computation time and packing accuracy may increase. Thus, discretization of the packing task (e.g., target package and packing platform) using adjustable unit pixels 310 provides increased flexibility for palletizing packages. The robotic system 100 may control the balance between computing resources/time and packaging accuracy according to unique circumstances, patterns, and/or environments.
For the example shown in fig. 3A and 3B, the robotic system 100 may expect/handle objects corresponding to a first parcel type 321, a second parcel type 322, a third parcel type 323, a fourth parcel type 324, and/or a fifth parcel type 325. The robotic system 100 may plan and place/stack the package on a placement pallet 340 corresponding to the task location 116 of fig. 1. For placement planning, the robotic system 100 may generate and/or utilize discretized object models 302 that include a first object model 331, a second object model 332, a third object model 333, a fourth object model 334, and/or a fifth object model 335 that represent the corresponding parcel, respectively, using the unit pixels 310. Similarly, the robotic system 100 may generate and/or utilize a discretized platform model 304 that places pallets 340 using unit pixels 310.
In some embodiments, the robotic system 100 may round up the actual size of the object (e.g., for the discretized object model 302, such as for the third object model 333 and/or the fourth object model 334) such that the unit pixels 310 extend beyond the actual perimeter edge of the object. In some implementations, the robotic system 100 may round down (e.g., for the discretized platform model 304) the actual dimensions of the platform surface such that the unit pixels 310 overlap and/or are contained within the actual perimeter edge of the object.
Based on the discretized data/representation, the robotic system 100 can generate a placement plan 350 for placing/packaging the package onto the placement pallet 340. The placement plan 350 may include a planned location on the pallet 340 for the target package to be placed. The robotic system 100 may generate a placement plan 350 for placing one or more of the available packages designated for loading/palletizing. For example, the robotic system 100 may generate a placement plan 350 for stacking a group of parcels from available parcels (e.g., received parcels and/or outgoing ordered parcels).
The robotic system 100 may generate a placement plan 350 based on a set of placement rules, placement conditions, parameters, requirements, and the like. In some embodiments, the robotic system 100 may generate the placement plan 350 based on packages grouped according to settings, such as according to package type (e.g., package type 321- "325), package height, customer-specified priority, fragility (e.g., such as a maximum support weight for packages stacked thereon), weight range, or combinations thereof. In some embodiments, the robotic system 100 may generate a placement plan 350 based on stacking conditions (such as, for example, stacking higher packages further away from the palletizing unit). Other examples of placement rules, conditions, parameters, requirements, etc. may include parcel size, no collision requirements, stack stability, grouping conditions (e.g., parcel type, parcel height, priority, etc.), parcel spacing requirements or lack of parcel spacing, maximization of total loaded parcels, or combinations thereof. Details regarding the placement plan are described below.
For the example illustrated in FIG. 3B, the robotic system 100 may generate a 2D placement plan (e.g., placement plan 350) for a set of packages corresponding to the package types 321 and 325. The robotic system 100 may generate a placement plan 350 to place three parcels of the first parcel type 321, four parcels of the second parcel type 322, four parcels of the third parcel type 323, five parcels of the fourth parcel type 324, and four parcels of the fifth parcel type 325. Placement plan 350 may group parcels to maximize adjacent parcel groupings having similar heights (e.g., equal to each other or within threshold limits of each other). Thus, the robotic system 100 may group four second wrap types 322 located at the lower left corner of the placement pallet 340 in a 2 x 2 arrangement. A second parcel group (e.g., parcels of the first parcel type 321, the fourth parcel type 324, and the fifth parcel type 325) may be placed around the initially placed group. Accordingly, the continuous surface area of the first grouping (e.g., at the height of four unit pixels 310) and the surface area of the second grouping (at the height of two unit pixels 310) may be maximized. Additionally, the robotic system 100 may separate the packages of the third package type 323 based on one or more requirements, such as fragility (e.g., limiting the number of items supported) and/or spacing requirements. Similarly, the robotic system 100 may generate a 2D placement plan according to boundary requirements (e.g., one or more unit pixels 310 from the edge of the placement pallet 340).
In some embodiments, the robotic system 100 may generate the placement plan 350 based on a 2D plan (e.g., an x-y footprint, such as an overhead view) and/or a 3D plan (e.g., an x-z or y-z footprint, such as a cutaway view). For example, the robotic system 100 may generate the placement plan 350 based on iteratively deriving potential 2D placements along the x-y plane, testing the potential placements according to placement rules, conditions, etc., calculating placement scores, or a combination thereof. The robotic system 100 may generate the placement plan 350 based on selecting a 2D placement plan that optimizes (highest or lowest) the placement score. In some embodiments, the robotic system 100 may further generate a 3D plan using the 2D placement plan (e.g., a stacking plan; not shown in FIG. 3B). For example, the robotic system 100 may generate a 3D placement plan based on using the 2D placement plan as a layer within the stack. In other words, the robotic system 100 may place the generated 2D placement above/on top of one or more layers (e.g., other 2D placement plans) and/or below/under one or more other layers.
As an illustrative example, the robotic system 100 may estimate and take into account the height of the placed object when deriving the 2D plan. For example, the robotic system 100 may highly pixilate (e.g., store in master data) the object, as shown in fig. 3A. In addition, the robot system 100 may map predetermined height data of the placed object to each of the unit pixels occupied by the object. With the height mapped to each of the pixels, the robotic system 100 derives a placement surface for the resulting 2D placement plan 350. The placement surfaces may each correspond to a lead-out surface/plane that may have and support an object placed thereon, such as due to the same or similar height of the object forming the lead-out surface.
The robotic system 100 may derive the placement surface based on identifying groups of unit pixels having height values within a threshold range of each other. In some embodiments, the robotic system 100 may derive the placement surface based on identifying a maximum height of the placement plan 350. Based on the maximum height, the robotic system 100 may identify unit pixels in the placement plan 350 that have a height that matches or is within a threshold range of the maximum height. The robotic system 100 may derive the contour based on the connection angle and/or the edge extension of the outermost/perimeter unit pixel having the acceptable height, thereby deriving the placement surface. The robotic system 100 may repeat the process using a lower height for areas outside the placement area. For the example shown in fig. 3B, the robotic system 100 may derive a first placement surface 352, a second placement surface 354, and a third placement surface 356. The first placement surface 352 may correspond to a rectangular area having a maximum height of four unit pixels shown in the lower left corner of the placement plan 350. The second placement surface 354 may correspond to a surrounding area (shown using a dashed line) having a height of two unit pixels. The third placement surface 356 may correspond to a separate area having a height of one unit pixel located on the right side of the placement plan 350. Details regarding 2D and 3D placement plans follow.
Fig. 3C is a diagram illustrating a placement planning process in accordance with one or more embodiments of the present technology. The robotic system 100 (via, for example, the one or more processors 202 of fig. 2) may derive the placement plan 350 of fig. 3B for a set of available parcels 362. Available packages 362 may correspond to objects that need to be packaged for export shipment and/or storage. For example, the available packages 362 may correspond to incoming objects received through an entrance shipment and/or stored objects that have been sorted for an exit shipment. In some embodiments, the robotic system 100 may use shipping manifests, order lists, etc. to identify available packages 362 in real-time (such as directly in response to receiving the manifest, list (i.e., within its threshold duration), etc.). Thus, the robotic system 100 may use the identified available packages 362 to derive the placement plan 350 in real-time. As such, instead of an offline packaging simulator that utilizes an assumed number/setting/combination of packages to derive a plan that applies regardless of real-time conditions, the robotic system 100 may use real-time conditions, availability, and/or requirements to derive the placement plan 350. In some embodiments, the robotic system 100 may use a device (e.g., one or more of the processors 202) located at a location that receives, stores, and/or transmits objects, such as a shipping hub and/or warehouse.
In some embodiments, as discussed in detail below, the robotic system 100 may group and/or sequence the available parcels 362. The robotic system 100 may use an ordered set of available parcels 362 to derive the placement plan 350. The robotic system 100 may determine and evaluate unique placement locations/combinations of available packages 362 to derive the placement plan 350. In other words, the robotic system 100 may determine a set of potential placement combinations 364 and evaluate the combinations 364 according to a set of predetermined requirements, conditions, weights, costs, subsequent implications, or combinations thereof. Based on the evaluation, the robotic system 100 may select a placement combination to derive a placement plan 350.
In at least one embodiment, the robotic system 100 may use an algorithm that iteratively evaluates the placement of sequenced parcels to derive the placement plan 350. As shown in fig. 3C, the robotic system 100 may begin the export by determining the initial placement of the first of the available packages 362. Thus, the robotic system 100 may overlay the corresponding discretized object model 302 of FIG. 3A over the discretized platform model 304 of FIG. 3B at an initial location (e.g., a corner, an intermediate location, and/or another preset location). The robotic system 100 may track the remaining packages 372 based on removing the placed package (e.g., the first package) from the available packages 362.
Based on the initial placement, the robotic system 100 may determine a set of possible placements for a second parcel of the available parcels 362. The robotic system 100 may determine a set of possible placements according to predetermined rules, patterns, or a combination thereof. For example, the robotic system 100 may determine the placement location according to a pattern of locations relative to one or more previously placed packages (e.g., relative to one or more previously placed packages). Additionally, the robotic system 100 may determine the placement location based on a required minimum/maximum separation distance between one or more of the packages, or lack thereof. Further, the robotic system 100 may determine the placement location based on rotating the parcel (i.e., corresponding to the discretized object model 302) according to a predetermined amount, such as 90 degrees. In some embodiments, the robotic system 100 may limit the placement possibilities according to predetermined thresholds and/or patterns. In addition, the robotic system 100 may update the remaining packages 372 separately.
The robotic system 100 may repeat the above process and iteratively process the available packages 362 until a stop condition is reached. Some examples of stop conditions may represent that all parcels have been placed (i.e., remaining parcel 372 is empty), that placement cannot be improved (e.g., the evaluation score is the same as the previous level/iteration), that no more parcels can be placed on top of discretized platform model 304, or a combination thereof.
In some embodiments, the robotic system 100 may use the search tree 374 to track possible placements and corresponding potential placement combinations 364. The root of search tree 374 may correspond to the initial placement, and each level or hierarchy may include potential placements of subsequent ones of available parcels 362. Different tiers may be connected together to form branches corresponding to unique placement combinations of the set of parcels.
For each potential placement of a parcel, the robotic system 100 may identify and eliminate (e.g., represented by an 'X' in fig. 3C) redundant footprints. For example, at each level of the search tree 374, the robotic system 100 may compare (overlay) the resulting footprint of the potential placement locations/combinations. Based on the comparison, the robotic system 100 may eliminate duplicates of the resulting footprint. In some embodiments, the robotic system 100 may further compare the resulting transposed, rotated, and/or mirrored versions of the footprint to eliminate related duplicates. For example, the robotic system 100 may rotate a footprint by 90 degrees and/or transpose the footprint across one or more mirror lines (e.g., a diagonal line extending across opposing corners, one or more bisectors extending along the x and/or y directions, or a combination thereof) and compare it to other footprints.
Additionally, for each potential placement of a parcel, the robotic system 100 may identify and eliminate placements that violate one or more requirements/constraints. One example of a requirement/constraint may be based on the likelihood of a collision. The robotic system 100 may calculate an approach path and corresponding collision probability for each placement location based on a pre-existing footprint, one or more dimensions of the package, a location of the handling robot, previous events or history, or a combination thereof. The robotic system 100 may eliminate placements where the likelihood of collision exceeds a predetermined threshold. Another example of a requirement/constraint may be a support weight for stacking (i.e., placing directly on/over one or more support packages) packages. For one or more of the parcels located below the placement location, the robotic system 100 may calculate a support weight (i.e., the combined weight of the parcel or the portion directly above it) based on the weight of the placed parcel. The robotic system 100 can eliminate placement of a support weight that violates (e.g., exceeds or is within a threshold range of) a frangibility requirement (e.g., a maximum supportable weight) of one or more of the packages below the placement location.
In some embodiments, the robotic system 100 may use the priority queue 376 (e.g., heap structure, etc.) to track and/or evaluate the placement combinations 364. The priority queue 376 may order the placement groupings 364 according to a preference order. The robotic system 100 may evaluate or score one or more of the placement combinations 364 based on one or more predetermined criteria. The criteria may include one or more costs associated with an item that has been placed and/or one or more heuristic scores associated with the manner or likelihood that the current placement affects future placements.
One example of a criterion may include maximization of the footprint density. The robotic system 100 may calculate a footprint density of the outer perimeter 382 of the parcel grouping. In some embodiments, outer perimeter 382 may be determined based on the exposed/outer perimeter edge of the package packet. The robotic system 100 may further encompass the surrounding/relevant area by extending two or more edges and finding points of intersection and/or by drawing lines connecting one or more corners of the footprint. The robotic system 100 may calculate the footprint density as a ratio between the actual footprint 384 (e.g., the number of unit pixels 310 corresponding to the shaded area) and the empty area 386 (e.g., the number of unit pixels 310 corresponding to the surrounding/relevant area). Robotic system 100 may be configured to prefer a placement plan that minimizes empty area 386 (e.g., by assigning a higher/lower score).
Stack rules
Fig. 4A-4C are diagrams of stacking rules, according to one or more embodiments of the present technology. The robotic system 100 may use stacking rules to place packages on top of each other, such as for stacking/placing one or more packages layers on one or more other packages layers. The robotic system 100 may use stacking rules to improve the stability of stacked packages and prevent any packages from slipping and/or tipping during movement of the pallet. For illustrative purposes, fig. 4A-4C show top wrap 452 directly over and supported by (e.g., in direct contact with) one or more support wraps 454.
Fig. 4 illustrates a horizontal migration rule 402 for generating a 3D placement (e.g., 3D placement plan 350). The horizontal offset rules 402 may include regulations, requirements, or combinations thereof for controlling the horizontal offset of vertical edges/surfaces between stacked items. For example, the horizontal migration rule 402 may be based on an overlap requirement 422, an overhang requirement 424, or a combination thereof. The overlap requirement 422 may include a minimum amount of overlap (e.g., a percentage or ratio of length, width, and/or surface area) between stacked packages. In some embodiments, the overlap requirement 422 may require a minimum amount of horizontal size/surface area of the top wrap 452 to overlap with the horizontal size/surface area of the support wrap 454. The overhang requirements 424 can include a maximum amount (e.g., a percentage or ratio of length, width, and/or surface area) of overhang (such as a portion of the top wrap 452 extending horizontally past the peripheral edge/surface of the support wrap 454).
In some embodiments, the horizontal migration rule 402 may be based on weight, size, and/or centroid (CoM) location 412. For example, overlap requirements 422 and/or overhang requirements 424 may evaluate the distance between top wrap 452 and CoM position 412 of support wrap 454 based on CoM position 412, such as for a distance between the top CoM position and a horizontal edge/surface and/or overhang distance (e.g., measured along a horizontal direction of top wrap 452 extending past a portion of one or more peripheral edges of support wrap 454) relative to the CoM position of support wrap 454. In some embodiments, horizontal migration rules 402 may be based on CoM migration requirements 426 that require top parcel 452 and CoM position 412 of support parcel 454 to be within a threshold. The threshold may comprise a threshold limit for a ratio between the predetermined distance, the offset distance between the CoM location 412 relative to the horizontal dimension, the overhang distance, the overlap distance, or a combination thereof.
Fig. 4B illustrates support interval rules 404 for generating 3D placements (e.g., stacking plans). Support spacing rules 404 may include regulations, requirements, or a combination thereof for controlling horizontal spacing distances 414 between support packages 454. Horizontal separation distance 414 may correspond to the horizontal distance between the perimeter surfaces/edges of adjacent support wraps 454. In some embodiments, support spacing rules 404 may be further based on the location and/or amount of the overlapping surface between top wrap 452 and support wrap 454. For example, the support spacing rules 404 may require the horizontal spacing distance 414 to be greater than any overhang distance by a predetermined percentage. Additionally, the support spacing rules 404 may require that the horizontal spacing distance 414 extend below the CoM location 412 of the top parcel 452.
Fig. 4C illustrates a vertical offset rule 406 for generating a 3D placement (e.g., 3D placement plan 350). Vertical offset rules 406 may include regulations, requirements, or a combination thereof for controlling the support height difference 416 between vertical positions of the support package 454. Support height difference 416 may correspond to a vertical distance between top portions of corresponding support packages 454, such as portions that would likely contact top packages 452 placed above corresponding support packages 454. In some embodiments, vertical offset rules 406 may require that support height difference 416 comply with a predetermined threshold requirement for stacking one or more parcels on top of support parcel 454. In some embodiments, support spacing rules 404 may vary based on layer height. For example, when top wrap 452 (e.g., a supported wrap) is part of the topmost layer, the limit for support height difference 416 may be greater than for lower layers.
The robotic system 100 may generate a stacking plan (e.g., a 3D combination of multiple 2D placement plans) according to the stacking rules. For example, the robotic system 100 may generate a 2D placement plan (e.g., the placement plan 350 of fig. 3B) according to the altitude requirements (e.g., for keeping the altitude of the parcel group within a threshold distance). Subsequently, the robotic system 100 may generate a stacking plan based on vertically overlapping (stacking) the 2D placement plans.
Stacking sequence
Fig. 5A is an illustration of an example of a stacking plan 502 (e.g., a plan representing a 3D map of available parcels and/or a placement plan 350 corresponding to a layer within the 3D map), in accordance with one or more embodiments of the present technology. For illustrative purposes, the stacking plan 502 is shown using a first layer 512, a second layer 514, and a third layer 516 of a first stack 520 of parcels (e.g., at least parcels 1-1 through 1-4, 2-1 through 2-2, and 3-1 through 3-3). Each of the first layer 512, the second layer 514, and the third layer 516 may be an instance of the placement plan 350. First layer 512 may be positioned on the bottom such that the packages therein (e.g., at least packages 1-1, 1-2, 1-3, and 1-4) are in direct contact with placement pallet 340. The wraps in the second layer 514 (e.g., at least wraps 2-1 and 2-2) may be directly on (i.e., directly in contact with) the first layer 512 and above the first layer 512. Similarly, the wraps in third layer 516 (e.g., at least wraps 3-1 and 3-2) may be directly on second layer 514 and contact second layer 514.
As discussed in detail below, the robotic system 100 may plan each of the levels individually while taking into account vertical parameters (e.g., support height, level height, etc.). In generating the stacking plan 502, the robotic system 100 may vertically combine and/or sequence the individual layers according to vertical parameters and/or stacking rules. In some embodiments, the robotic system 100 may plan the layers according to the vertical placement of the package. For example, the robotic system 100 may generate the first layer 512 to include all parcels that are placed in direct contact with the pallet 340, such as including the bottom two parcels in the second stack 522. Additionally, the robotic system 100 may plan the package labeled '3-3' as part of the second layer 514. In some embodiments, the robotic system 100 may re-plan and/or adjust the layers (e.g., the placement plan 350) when generating the stacking plan 502. For example, the robotic system 100 may adjust the layers to facilitate the stacking/placement order. As shown in fig. 5A, the robotic system 100 may adjust the layers such that the second stack 522 is considered a separate stack (i.e., separate from the first, second, and third layers 512-516). Thus, the robotic system 100 may freely plan and/or stack parcels of the second stack 522 separately/differently from the layers of the first stack 520.
Additionally, in some embodiments, the robotic system 100 may move larger wraps closest to the handling unit 104 of fig. 1 (e.g., a palletizing robot) to higher levels to facilitate a stacking sequence. Assuming that the handling unit 104 is on the right side of the placement pallet 340 shown in fig. 5A, the '3-3' package may be an obstacle (i.e., due to its height) if it is placed before the packages labeled '3-1' and '3-2'. Thus, the robotic system 100 may adjust the layers such that the '3-3' parcel is part of a higher layer (e.g., third layer 516 instead of second layer 512). Thus, when the robotic system 100 places parcels according to layers, a '3-3' parcel may be placed after a '3-1' and '3-2' parcel.
In other alternative embodiments, the robotic system 100 may calculate the stacking or placement order based on the analysis stacking plan 502 alone, without being limited to layers. For discussion purposes, fig. 5B is an illustration of a stacking order 530 (e.g., identification of placement order of available parcels) that is not limited by stacking parcels according to layers, in accordance with one or more implementations of the present technology. The stacking sequence 530 may be used to place the stacked wrap 532 over the support wrap and horizontally between the two end wraps. The stacking sequence 530 may be such that the package furthest from the handling unit 104 (not shown in fig. 5B, assumed to be on the right side of the placement pallet 340) may be placed first (labeled '1') and then a second package (labeled '2') may be placed on the placement pallet 340. The robotic system 100 may calculate the stacking order 530 such that the stacked parcel 532 (labeled '3') is placed before (e.g., third) one of the end parcels 534 (labeled '4'). As described above, the robotic system 100 may calculate the stacking order 530 based on adjusting one of the end parcels 534 to belong to the second floor with stacked parcels 532 or based on independently calculating the stacking order from the stacking plan 502.
Operation process
Fig. 6 is a flow diagram of a method 600 for operating the robotic system 100 of fig. 1 in accordance with one or more embodiments of the present technique. The method 600 may be used to generate a 2D/3D packing plan for placing packages (e.g., cases and/or boxes) onto a platform (e.g., pallet) and/or for placing packages separately. The method 600 may be implemented based on executing instructions stored on one or more of the storage devices 204 of fig. 2 with one or more of the processors 202 of fig. 2.
At block 602, the robotic system 100 may identify a group of packages (e.g., available packages 362 of fig. 3C) and a destination (e.g., task location 116 of fig. 1, such as a pallet and/or container for receiving the packages). For example, the robotic system 100 may identify a group of packages to represent available packages 362 including packages available for packaging, located at a source, designated for placement and/or listed in an order/request/manifest. Additionally, the robotic system 100 represents the size or dimensions of an area of the task location 116 where a package may be placed (e.g., a top loading surface of a pallet, such as the placement pallet 340 of fig. 3). In some embodiments, the robotic system 100 may identify the size, type, or combination thereof, of the pallet.
At block 604, the robotic system 100 may generate and/or access a discretized model (the discretized object model 302 of FIG. 3A and/or the discretized platform model 304 of FIG. 3B) corresponding to the group of parcels and/or task locations 116 representing the available parcels 362. In some embodiments, the robotic system 100 may generate the discretized model (e.g., in real-time (such as after receiving the order and/or before beginning the packing operation) or offline) based on the physical dimensions of the partitioned object and/or platform area (e.g., the pallet top surface according to unit pixels 310 of fig. 3B). The unit pixel 310 may be predetermined (by, for example, a manufacturer, ordering customer, and/or operator) to be, for example, 1 millimeter (mm) or 1/16 inches (in) or greater (e.g., 5mm or 20 mm). In some embodiments, the unit pixels 310 may be based on a size or dimension (e.g., a percentage or fraction) of one or more of the parcels and/or the platforms.
In some embodiments, the robotic system 100 may access the discretized model stored in the storage device 204 and/or another device (e.g., a storage device, a database, and/or a server of a package supplier accessed through the communication device 206 of fig. 2). The robotic system 100 may access a predetermined discretized model that represents available parcels 362 and/or task locations 116. For example, the robotic system 100 may access the discretized object model 302 corresponding to the available parcel 362 by searching the master data 252 of fig. 2 (e.g., a predetermined table or a look-up table) for the available parcel and its corresponding model. Similarly, the robotic system 100 may access a discretized platform model 304 that represents a platform on which available packages are to be placed (such as identified pallets).
At block 606, the robotic system 100 may determine a package grouping (e.g., a subset of available packages). The robotic system 100 may determine a package group based on the available packages 362 for placing the package group on the identified platform (e.g., the placement pallet 340). The robotic system 100 may determine the package groupings based on similarities and/or patterns in one or more characteristics of the available packages 362. In some embodiments, as shown at block 621, the robotic system 100 may determine parcel groupings by grouping available parcels 362 according to grouping conditions/requirements. Some examples of grouping conditions/requirements may include a package priority (e.g., as specified by one or more customers), a fragility rating (e.g., a maximum weight that the package can support), a weight, a package size (e.g., a package height), a package type, or a combination thereof. Upon grouping available parcels 362, the robotic system 100 may search the master data 252 for a variety of characteristics of available parcels 362 that match the grouping criteria/requirements.
At block 608, the robotic system 100 may calculate a processing order (e.g., order of considering/deriving placement locations) of the available parcels 362 and/or groupings thereof (i.e., parcel groupings). In some embodiments, as shown at block 622, the robotic system 100 may calculate a processing order according to one or more sequencing conditions/requirements. For example, the robotic system 100 may prioritize placement plans for groups according to the number of packages within each of the package groups, such as to process package groups having a greater number of packages earlier in the placement plan. In some implementations, the ordering conditions may overlap with the grouping conditions, such as for a weight range, a friability rating, or the like. For example, the robotic system 100 may prioritize handling heavier and/or less fragile packages for earlier handling and/or placement in lower floors.
In some embodiments, the robotic system 100 may prioritize the placement plans according to the combined horizontal area. The robotic system 100 may use the information specified in the master data 252 to calculate (by, for example, multiplying the corresponding width and length) or access the surface area of the top surface of the parcel in the group. In calculating the combined horizontal area, the robotic system 100 may sum the surface areas of the parcels having the same type and/or height within a threshold range. In some embodiments, the robotic system 100 may prioritize placement plans for packets having a larger combined horizontal area for earlier processing and/or placement in lower layers.
For one or more embodiments, the robotic system 100 may load the buffer with an identifier and/or amount of available packages 362. The robotic system 100 may sequence the identifiers in the buffer according to the packets. Further, the robotic system 100 may sequence the identifiers in the buffer according to a processing order. Thus, the ordered values in the buffer may correspond to the available parcels 362 and/or the remaining parcels 372 shown in FIG. 3C.
As shown at block 624, for example, the robotic system 100 may calculate a processing order for an initial group of available parcels 362 (e.g., a group of parcels) prior to implementing the corresponding stacking plan 502 of fig. 5 (such as prior to placing any parcels in the group of parcels on a platform). In some implementations, as shown at block 626, the robotic system 100 may calculate the order of processing of the remaining sets of available parcels 362 after or while initiating implementation of the corresponding stacking plan 502. For example, as shown by the feedback loop from block 616, the robotic system 100 may calculate a processing order for the remaining groups (e.g., the portions of the available packages 362 that have not been handled to the platform and/or remain at the source location) based on one or more trigger conditions. Exemplary trigger conditions may include a stack error (e.g., a lost or dropped package), a collision event, a predetermined re-trigger timing, or a combination thereof.
At block 610, the robotic system 100 may generate a 2D plan (e.g., the placement plan 350 of fig. 3B) for placing the available parcels 362 along a horizontal plane. For example, the robotic system 100 may generate the placement plan 350 to represent a 2D mapping of the available parcels 362 along a horizontal plane. The robotic system 100 may generate two or more placement plans based on the discretized model. For example, the robotic system 100 may generate the placement plan 350 based on comparing the discretized object model 302 to the discretized platform model 304. The robotic system 100 can determine different placements/arrangements of the discretized object model 302, overlap/compare them with the discretized platform model 304, and verify/maintain the arrangement within the boundaries of the discretized platform model 304 when overlapped. The robotic system 100 may designate a parcel that cannot be placed within the boundaries of the discretized platform model 304 for another layer (e.g., another instance of the placement plan 350). Thus, the robotic system 100 may iteratively derive placement positions of the placement plan 350 that represent the 2D layers of the stack plan 502 until each of the parcels in the group of parcels has been assigned a position in the placement plan 350.
In some embodiments, the robotic system 100 may generate a placement plan 350 based on the package groupings. For example, the robotic system 100 may determine the placement of packages within one package group before considering the placement of packages in another group. When a package within a package grouping is one-tiered (i.e., cannot fit within one tier or one instance of discretized platform model 304) and/or after placing all packages of one grouping, robotic system 100 can assign the location of the package in the next grouping to any remaining/unoccupied areas in discretized platform model 304. The robotic system 100 may iteratively repeat the assignment until no unassigned packages can fit onto the remaining space of the discretized platform model 304.
Similarly, the robotic system 100 may generate the placement plan 350 based on the order of processing (e.g., based on a grouping of packages according to the order of processing). For example, the robotic system 100 may determine a test arrangement based on assigning parcels and/or groupings according to a processing order. The robotic system 100 may assign the earliest sequenced parcel/group an initial placement for a test arrangement, and then test/assign subsequent parcels/groups according to the processing order. In some embodiments, the robotic system 100 may maintain the order of processing of the packages/groups across layers (e.g., across instances of the placement plan 350). In some embodiments, the robotic system 100 may recalculate and update the processing order after each layer is filled (shown in fig. 6 using dashed feedback lines).
In some embodiments, as an illustrative example of the processes described above, the robotic system 100 may generate the 2D plan by identifying different package types within the package group (e.g., the respective first, second, third, fourth, and/or fifth package types 321-325 of fig. 3A). In other words, at block 632, the robotic system 100 may identify the package groups and/or unique packages within each of the package groups (e.g., as represented by package types).
At block 634, the robotic system 100 may derive (e.g., iteratively) the placement position of each of the available parcels 362. At block 636, the robotic system 100 may determine an initial placement location of the unique packages that are first in order according to the processing order. The robotic system 100 may determine the initial placement position according to a predetermined pattern, as described above. In some embodiments, the robotic system 100 may calculate the initial placement of each unique package. The resulting initial placements may each be self-developed into a unique placement combination (e.g., an instance of the search tree 374 of fig. 3C), such as by tracking the placement plan 350 across iterations. At block 638, the robotic system 100 may derive and track candidate placement locations for subsequent parcels according to the processing order and/or remaining parcels 372 as described above. Thus, the robotic system 100 may iteratively derive the placement combination 364 of fig. 3C.
In deriving the placement combination 364 (e.g., a candidate placement location), the robotic system 100 may test/evaluate the location of the discretized object model 302 for the corresponding parcel based on iteratively deriving and evaluating candidate stacking scenarios (e.g., potential combinations of unique placement locations of available parcels). The candidate stacking scenarios may each be derived based on identifying unique potential locations of the package according to the order discussed above (e.g., according to a predetermined order/rule of placement locations). The candidate stack context and/or unique placement locations may be evaluated according to one or more placement criteria (e.g., requirements, constraints, placement costs, and/or heuristic scores). For example, the placement criteria may require that discretized object model 302, when placed at the selected location, be fully within the horizontal boundaries of discretized platform model 304. Additionally, the placement criteria may require that the placement of the discretized object model 302 be within or outside of a threshold distance relative to an initial placement location (e.g., such as along a horizontal direction) and/or a prior placement location, such as for adjacent placement or spacing requirements. Other examples of placement criteria may include a preference for placing packages having one or more minimum differences in adjacent manner over one or more package sizes (e.g., height), frangibility ratings, package weight ranges, or a combination thereof. In some embodiments, the placement criteria may include a likelihood of collision that may correspond to a position and/or characteristic (e.g., height) of a parcel previously assigned in a layer relative to a reference position (e.g., a position of the palletizing robot). Thus, the robotic system 100 may generate multiple unique placement combinations of package placement locations (i.e., candidate placement plans for each layer and/or candidate stacking scenarios where each layer includes multiple layers). In some embodiments, the robotic system 100 may generate and update a search tree 374 to track the combined placement based on the cross-placement iterations.
At block 640, the robotic system 100 may calculate/update a placement score for each combination/package placement. The robotic system 100 may calculate a placement score according to one or more of placement conditions/preferences (e.g., parcel size, likelihood of collision, frangibility rating, parcel weight range, spacing requirements, parcel volume conditions). For example, the robotic system 100 may use preference factors (e.g., multiplier weights) and/or equations to describe preferences for: a separation distance between parcels, a parcel size/friability rating/difference in parcel weight of adjacent parcels, a collision probability, a continuous/adjacent surface at the same height, statistical results thereof (e.g., mean, maximum, minimum, standard deviation, etc.), or a combination thereof. Each combination may be scored according to preference factors and/or equations that may be predefined by the system manufacturer, the order, and/or the system operator. In some embodiments, the robotic system 100 may calculate the placement score at the end of the total placement iteration.
In some embodiments, the robotic system 100 may update the order of the placement combinations 364 of fig. 3C in the priority queue 376 after each placement iteration. The robotic system 100 may update the order based on the placement score.
The robotic system 100 may stop the placement iteration based on determining an empty source state, a full layer state, or an invariant score state, such as when one candidate placement plan is completed. The empty source state may represent that all available packages have been replaced. The full-level state may represent that no other packages may be placed in the remaining area of the discretized platform model 304 under consideration. The invariant score state may represent that the combined placement score remains constant across one or more successive placement iterations. In some implementations, the robotic system 100 may repeat the placement iteration using different initial placement positions and/or different processing orders (e.g., for reordering groups having the same ordering value/score associated with an ordering condition) to derive other instances of the candidate stacking context. In other words, the robotic system 100 may generate multiple 2D placement plans, where each 2D placement plan may represent a layer within the 3D stack (e.g., an instance of a candidate stack context). In other embodiments, the robotic system 100 may iteratively consider 3D effects when deriving the 2D placement plan and begin deriving the next layer as the next iteration when the 2D placement plan becomes complete.
At block 612, the robotic system 100 may generate a stacking plan (e.g., stacking plan 502). In some embodiments, the robotic system 100 may begin generating the stacking plan 502 when the placement location of a processed parcel overlaps with one or more previously placed/processed parcels.
In generating the stacking plan 502 and/or accessing the 2D plan, the robotic system 100 may convert each of the placement combinations 364 and/or placement plans into a 3D state, as shown at block 652. For example, the robotic system 100 may assign a height value for a package to the placement group 364. In other words, the robotic system 100 may generate a contour map (an estimate of a depth map) based on adding the package height to the placement combination 364.
With 3D status, the robotic system 100 may evaluate the placement combination 364 according to one or more stacking rules (e.g., the horizontal offset rule 402 of fig. 4A, the support spacing rule 404 of fig. 4B, and/or the vertical offset rule 406 of fig. 4C). As an illustrative example, the robotic system 100 may eliminate any placement combinations 364 that violate the overlap requirement 422 of fig. 2, the overhang requirement 424 of fig. 4A, the vertical offset rule 406, the CoM offset requirement 426 of fig. 4A, or a combination thereof, described above, when a placed package is stacked on/over one or more previously processed packages. In one or more embodiments, the robotic system 100 can eliminate any placement combinations 364 that violate the frangibility rating of one or more parcels below the processed parcel, such as by estimating the support weights at the overlapping parcels and comparing them to the corresponding frangibility ratings.
For the remaining placement combinations 364, the robotic system 100 may calculate a 3D placement score or update the placement score, such as shown at block 654. The robotic system 100 may use predetermined preferences (e.g., weights and/or equations) associated with the placement cost and/or heuristic values of the 3D placement. The predetermined 3D preference may be similar to a 2D preference, a grouping preference, a sequencing condition, or a combination thereof. For example, the 3D preference may be configured to calculate a likelihood of collision based on the 3D state and calculate a score that favors placement combinations with lower likelihood of collision. Additionally, the robotic system 100 may calculate a score based on the remaining parcels 372, the size of the support area having a common height, the number of packaged items in a 3D state, the difference between the heights of the processed parcels, or a combination thereof. In some embodiments, the robotic system 100 may update the order of the placement combinations 364 in the priority queue 376 according to the score.
After the 3D state has been processed, such as at block 610, the robotic system 100 may update the 2D plan by exporting the placement of the next parcel in the remaining parcels 372. The robotic system 100 may repeat the above process until a stop condition, such as when all available parcels 362 have been processed (i.e., null values/groups of remaining parcels 372) and/or when the placement combination 364 cannot be improved (also referred to as a no improvement combination). Some examples of no improvement combinations may include a case where the currently processed placement eliminates the last of the placement combinations 364 in the priority queue 376 due to one or more violations and/or a case where the placement score remains constant across a threshold number of iterations for the preferred combination.
When a stop condition is detected, such as at block 656, the robotic system 100 may select one of the derived placement combinations 364 according to a placement score (e.g., a 2D and/or 3D related score). Thus, the robotic system 100 may specify the selected placement combination as a stacking plan 502 (a set of placement plans 350).
In some embodiments, as an illustrative example, the robotic system 100 may implement the functionality of blocks 610 and 612 in different ways. For example, at block 610, the robotic system 100 may generate a bottom-level 2D plan (e.g., an instance of the placement plan 350), as described above. In this case, the robotic system 100 may be configured to impose a greater preference (e.g., a greater parametric weight) for matching parcel weight, heavier parcel weight, and/or a greater supportable weight of the parcel when considering placement and/or handling order. The robotic system 100 may derive a first 2D plan for the base layer, such as described above for block 610.
Once the first 2D layer is completed/filled as described above, forming the base layer, the robotic system 100 may convert the placement plan to a 3D state, as described with respect to block 612/652. Using the 3D information, the robotic system 100 may identify one or more planar portions/areas of the base layer (e.g., the placement surface 352 and 356 of fig. 3B), as described above. Using the planar portion, the robotic system 100 may iteratively/recursively derive parcel placements for the next layer above the base layer. The robotic system 100 may consider each of the planar portions as a new instance of the discretized platform model 304 and test/evaluate the different placements, as described above for block 610. In some embodiments, the robotic system 100 may use the placement surface to derive the 2D placement, but calculate a score across the entire placement pallet 340. Thus, the robotic system 100 may be configured to follow the preference for a larger placement area for subsequent layers, without being limited to the aforementioned placement area.
Once the iterative placement process is stopped for the second layer, the robotic system 100 may calculate a planar portion of the derived layer (e.g., a top surface having a height within a threshold range) to generate a 2D placement of the remaining parcels/groupings of the next upper layer. The iterative layering process may continue until a stop condition has been met, as described above.
In some embodiments, the robotic system 100 may generate 2D plans (e.g., two or more of the placement plans 350) separately at block 612. The robotic system 100 may generate the stacking plan 502 based on vertically combining (e.g., arranging/stacking 2D placement plans along a vertical direction) the 2D plans.
At block 614, the robotic system 100 may generate a packaging order (e.g., the stacking order 530 of fig. 5B) based on the stacking plan 502. As an example, the packaging order can be used to identify the placement order of the available packages 362. In some embodiments, as shown at block 662, the robotic system 100 may calculate the packing order layer by layer. In other words, the robotic system 100 may calculate the packing order for each layer, and then concatenate the orders according to the order/position of the layers from bottom to top. In calculating the packing order, in some embodiments, the robotic system 100 may adjust the placement plan, as shown at block 672. For example, the robotic system 100 may adjust the placement plan by: by reassigning one or more of the parcels (e.g., parcels having a height that increases the likelihood of collision for subsequent handling/conveyance) from a lower level placement plan to a higher level placement plan. Any parcels supported by the reassigned parcel may also be reassigned to a higher tier. In other words, the reassigned parcels may remain in the same horizontal placement and associated with higher layers so that the parcels may be placed later as shown in FIG. 5B. At block 674, the robotic system 100 may calculate a packing order (e.g., the stacking order 530) based on the placement plan, such as adjusted by packing/manipulating objects assigned in a higher layer after being assigned in a lower layer.
In other embodiments, as shown at block 664, the robotic system 100 may calculate the packaging order regardless/independent of the layer assignments. In other words, the robotic system 100 may calculate the order of packaging such that packages assigned to a lower tier may be placed after packages assigned to a higher tier.
In calculating the packing order, the robotic system 100 may analyze the location of the packages in the stacking plan 502 according to one or more package sizes (e.g., heights), relative placement locations, or a combination thereof, both within a layer and across layers. For example, the robotic system 100 may sequence the placement of a cassette further away from a unit/reference location (e.g., the location of the palletizing robot) before a package closer to the dispatch. In addition, the robotic system 100 may place taller/heavier packages earlier when their assigned locations are along the perimeter of the placement plan and away from the unit location.
At block 616, the robotic system 100 may implement a stacking plan 502 for placing available parcels 362 on the platform. The robotic system 100 may implement the stacking plan 502 based on communicating one or more motion plans, actuator commands/settings, or a combination thereof to corresponding devices/units (e.g., the handling unit 104 of fig. 1, the actuation device 212 of fig. 2, the sensor 216 of fig. 2, etc.) according to the stacking plan 502. The robotic system 100 may further implement the stacking plan 502 based on executing the communicated information at the device/unit to ship the available packages 362 from the source location to the destination platform. Thus, the robotic system 100 may place the available parcels 362 according to the 3D mapping, with one or more of the available parcels 362 placed/stacked on top of other parcels, such as placing the available parcels 362 layer-by-layer. Further, the robotic system 100 may manipulate/carry packages according to a packaging sequence. In this way, the robotic system 100 may place packages layer by layer or without limitations of the type described above.
In some embodiments, implementing the stacking plan 502 may include the robotic system 100 handling available parcels 362 that arrive out of order at the robotic system 100 (block 680). In some embodiments, packages may be referred to as out-of-order when they arrive at the starting location 114 in an order other than the order in which they must be placed at the destination (e.g., a previously determined stacking order). Additional details regarding the robotic system 100 handling available parcels 362 that arrive out of order are described below with reference to at least fig. 7-11.
The tasks described above and the discretization of the 2D/3D layering provide improved efficiency, speed and accuracy of the bale object. Thus, the reduction in operator input and the increase in accuracy may further reduce the human labor of the automated packaging process. In some environments, a robotic system 100 as described above may eliminate the need for sequencing buffers that may cost about or more than 100 thousand dollars.
Handling out-of-order packages
Fig. 7 is an exemplary environment in which the robotic system 100 may operate to process packages arriving out of order. The robotic system 100 may be used to process packages arriving out of order for placement (in stacking order) at a particular destination (e.g., warehouse or carrier). In some embodiments, packages may be referred to as out-of-order when they arrive at the starting location 114 in an order other than the order in which they must be placed at the destination. For example, a parcel may be considered out-of-order when it does not match the packing order 530 of FIG. 5B. The robotic system 100 in the example of fig. 7 is shown handling packages for placement from a carrier into a warehouse. However, the robotic system 100 may also be implemented for placing packages from a warehouse into a vehicle (e.g., a truck).
The handling unit 104 of the robotic system 100 receives the available package 362 at the starting location 114 as a target object 112 for placement at the task location 116 (such as a pallet or platform). The handling unit 104 may receive available packages 362 out of order. The handling unit 104 may utilize the storage area 705 to temporarily store one or more of the available packages 362 (e.g., those arriving out of order) until the packages may be placed on the task locations 116 in the stacking order 720 defined by the stacking plan. For example, the handling unit 104 stores out-of-order packages in the storage area 705 and retrieves them from the storage area 705 when they are the next packages to be placed on the task location 116 (also referred to as a platform) in the stacking order 530. In this manner, the robotic system 100 may eliminate the need to receive available packages 362 in a stacked order (e.g., from the unloading unit 102). That is, the robotic system 100 may arrange the available parcels 362 on the platform according to the stacking order 720 defined in the stacking plan, regardless of the actual order in which the robotic system 100 receives the available parcels 362. In some embodiments, the stacking order 720 associates a package ID 721 of the package with a sequence ID 722 of the package. The order ID 722 of a particular package represents the stacking order of the particular package. Further, in some embodiments, the stacking order 720 is similar to the stacking order 530 of fig. 5B and may be part of the stacking plan 502.
For example, the totes 104 may be reached by packages 362 (e.g., packages "A" - "I") via a transport mechanism, such as the conveyor belt 110. The conveyor belt 110 may be equipped with a scanner 715 (such as a bar code reader) that can read a code associated with each of the available packages 362. In some embodiments, a code (e.g., a barcode) associated with a package may have package identification information such as one or more of: package Identification (ID)721, shipping information (e.g., delivery address), package size, package orientation details, weight range, fragility rating, plan ID of the stacking plan of which the package is a part. The placement of the scanner 715 and the code on the package may be preconfigured. For example, if the scanner 715 is below the conveyor belt 110, the code may be attached to the bottom of the package, or the unloading unit 102 may be configured to place the package on the conveyor belt 110 so that the code may be read by the scanner 715. As available packages 362 pass through scanner 715, one by one, in a series, robotic system 100 may determine the identity of the packages by package ID by operating scanner 715 (e.g., by instructions from one or more of processors 202) to read the codes associated with each of available packages 362. For example, the robotic system 100 may identify a package ID for an available package 362 according to a code associated with the available package 362. The robotic system 100 may then access a stacking plan (such as the stacking plan 502 of fig. 5) for the available packages 362 from the storage device 204 of fig. 2. The robotic system 100 may also obtain a stacking order for the available parcels 362 from the stacking plan (such as a stacking order 530 representing an order in which the available parcels 362 are to be placed on the task locations 116). For example, the robotic system 100 may reference the stacking order 720 to obtain the order IDs 722 of the available packages 362. In some embodiments, the order ID of the package represents the stacking order of the package on task location 116. As described above, the stacking plan may be a 3D combination of multiple 2D placement plans (e.g., vertically stacked 2D placement plans) according to the stacking rule that each 2D placement plan is a plan for placing parcels on pallets in a specified arrangement in a particular layer.
As the available packages 362 arrive at the starting location 114 and become target objects 112 (e.g., objects that become tasks for execution by the handling unit 104), for example, one-by-one, the robotic system 100 may determine, such as by one or more of the processors 202 of fig. 2, whether the package is the next in the sequence to be placed on a task location 116 (e.g., a pallet), and place the package on the task location 116 if the package is the next in the sequence, otherwise store the package in the storage area 705 (e.g., in one of the storage shelves, such as storage shelf 710) for later placement on the task location 116. The handling unit 104 may complete placement of the package 362 on the task location 116 by: an in-order parcel (e.g., the parcel that arrives at the start position 114 in the stacking order 530 next to be placed on the task position 116) is placed on the task position 116, or an out-of-order parcel (e.g., the parcel that arrives at the start position 114 not next to be placed on the task position 116 in the stacking order 530) is temporarily stored in the storage area 705 and then placed on the task position 116 when the temporarily stored out-of-order parcel eventually becomes the parcel next in the order to be placed on the task position 116.
Fig. 8 is a block diagram illustrating an example 800 of various stages in placing the available packages 362 of fig. 3 on task locations 116 of fig. 1 or 7, according to various embodiments. In some embodiments, example 800 may be implemented in the environment of fig. 7. As described above, because the available packages 362 pass through the scanner 715 of fig. 7 on their way to the starting location 114, the robotic system 100 will know the package ID and sequence ID of the package when it reaches the starting location 114, which will facilitate the robotic system 100 in handling the package (e.g., by the handling unit 104) for placement on the task location 116. For example, in the first stage 805, when a first parcel of the available parcels 362 passes the scanner 715, the handling unit 104 obtains the parcel ID of the first parcel (e.g., "a") from the scanner 715 and obtains the order ID of the parcel "a" according to the stacking order 720. When the package "a" reaches the start position 114 of fig. 1 or fig. 7, the handling unit 104 determines that the package "a" with the sequence ID "2" is not the next in sequence to be placed on the task position 116 (because no package is yet present on the task position 116), and therefore places the package "a" on the storage rack 710 of the storage area 705, as shown by the first placement 805. After placing the package "a" in the storage rack 710, the handling unit 104 also records the storage location information of the package "a" in, for example, the tracking data 254 of fig. 2. The storage location information may be 3D location information of the package "a" in the storage area 705. The storage location information of the package may be used by the handling unit 104 to locate the package in the storage area 705 and retrieve the package from the storage area 705 when needed. In some embodiments, the shipping unit 104 may generate a data structure (referred to as a "storage map") that stores the package ID, sequence ID, and storage location information for each package temporarily stored in the storage area 705.
Referring back to the handling of available packages, when package "B" reaches the start location 114, the handling unit 104 determines that package "B" having sequence ID "I" is the next package in the sequence to be placed on the task location 116, and therefore places package "B" on the task location 116, as shown by the second placement 806. In some embodiments, the handling unit 104 will place the package "B" according to the stacking plan. The carrier unit 104 may track the sequential ID of packages placed on the task location 116. For example, after placing a package "B" on the task location 116, the handling unit 104 may update the sequence counter associated with the task location 116 that represents the sequence ID of the most recently placed package on the task location 116 to "1".
The robotic system 100 determines that the next parcel to be placed in order on the task location 116 is a parcel with an order ID of "2", i.e., parcel "a" stored in the storage area 705. Thus, the carrying unit 104 determines the storage position information of the parcel "a" from the storage map, takes out the parcel from the storage rack 710 based on the storage position information, and places the parcel "a" on the task position 116 according to the stacking plan, as shown by the third placement 807. The handling unit 104 updates the sequence counter to "2" after placing the package "a" on the task position 116. In addition, the handling unit 104 also updates the memory map to indicate that the package "A" was placed on the task location 116. For example, the storage map may have an indicator that indicates whether a parcel is placed on a task location 116. In some embodiments, the handling unit 104 may even remove entries from the storage map when placing a package from the storage area 705 on the task location 116.
After placing package "A" on task location 116, the handling unit 104 processes the next available package in the series having a sequence ID of "3," package "C". The handling unit 104 determines that the package "C" is the next package in the sequence to be placed on the task location 116 and places the package "C" on the task location 116 according to the stacking plan, as shown by the fourth placement 808. The handling unit 104 also updates the sequence counter to "3" after placing the package "C" on the task location 116. Similarly, the handling unit 104 places the parcel "D" with the sequence ID "4" on the task location 116 according to the stacking plan (as indicated by the fifth placement 809) and updates the sequence counter to "4".
For the next arriving package in the series (e.g., package "E"), the handling unit 104 determines that the package "E" with the sequence ID "12" is not the next package to be placed in the sequence on the task location 116, and therefore stores the package "E" in the storage area 705 (e.g., on the storage shelf 710), as shown by the sixth placement 810. Similarly, the handling unit 104 processes the packages "F" - "I" one by one from the origination location 114 and places the packages on one or more storage shelves in the storage area 705, as shown by placement 811 and 814. The carrying unit 104 updates the storage map to record the package IDs, sequence IDs, and storage position information of the packages "E" - "I". In some embodiments, one or more parcels stored in storage area 705 are referred to as a parcel group.
When the package "J" reaches the start position 114, the carrying unit 104 determines that the package "J" having the sequence ID "5" is the package to be placed next in the sequence on the task position 116, and places the package "J" on the task position 116 according to the stacking plan, as shown by an eleventh placement 815. The conveyance unit 104 also updates the sequence counter to "5".
The handling unit 104 determines that the next package to be placed in order on the task location 116 is a package with an order ID of "6", i.e., a package "G" in the group of packages stored in the storage area 705. Thus, the handling unit 104 determines the storage location information of the package "G" from the storage map, takes out the package from the storage area 705 based on the storage location information, and places the package "G" on the task location 116 according to the stacking plan, as shown by the twelfth placement 816. The handling unit 104 updates the sequence counter to "6" and updates the memory map to indicate that the package "G" was placed on the task location 116.
Next, the handling unit 104 determines that the group of packages in the storage area 705 is not the next package in the sequence to be placed on the task location 116, and therefore proceeds to process the next available package in the series that arrives (e.g., package "K" with sequence ID "7"). The carrier unit 104 determines that package "K" is the next package in the sequence to be placed on the task location 116 and places it on the task location 116 according to the stacking plan, as shown by the thirteenth placement 817. The carry unit 104 also updates the sequence counter to "7".
Next, the handling unit 104 proceeds to place packages "I" and "H" one by one from the storage area 705 onto the task location 116, as shown by placements 818 and 819. The handling unit 104 continues to process packages as described above until a stop condition is met (e.g., all available packages 362 are placed on the task location 116). The sequence counter and/or the storage map are updated as needed (e.g., when a package is placed on a task location 116 or in a storage area, or removed from a storage area for placement on a task location 116) to indicate the placement status of the package.
It should be noted that the packages are arranged/stacked in multiple layers on the task location 116, e.g., packages "D", "C", "a", and "B" in a first layer, "I", "K", "J", and "G" in a second layer, "H" in a third layer, and so on. This arrangement is defined by a stacking plan, as described above with reference to at least fig. 4A-5B.
The storage area 705 may be designed in one of many configurations suitable for the carrier unit 104 to place and/or remove packages therefrom. For example, the storage area 705 may be configured as a plurality of storage shelves 710 arranged in a semi-circular multi-tiered configuration (such as a roundabout configuration or a stairway format). In another example, the storage shelves 710 may be arranged in a plurality of rows and columns.
The handling unit 104 may place the group of packages in the storage area 705 in a variety of arrangements. For example, the handling unit 104 may place packages in a group of packages laterally (one next to the other) on a storage rack 710, and then move the packages to another storage rack 710. In another example, the handling unit 104 may randomly place packages in the storage area 705. In yet another example, the handling unit 104 may generate a placement plan for placing packages in the storage area 705, such as the placement plan described with reference to at least fig. 3A-3C. The placement plan may take into account the number of storage racks, the size of the storage racks, the weight carrying capacity of the storage racks, etc. for placing the packages in the storage area 705. Regardless, the packages are stored in the storage area 705 such that the handling unit 104 can efficiently use the available storage space in the storage area 705 to store one or more of the available packages 362, and can most efficiently place and retrieve packages in and from the storage area 705.
The process of temporarily storing one or more of the available packages 362 in storage area 705 and then moving them to task location 116 may be implemented in a variety of ways. In a first example, the handling unit 104 may store each of the available packages 362 in the storage area 705 (e.g., one by one), and then process the packages from the storage area 705 to place them on the task locations 116 according to the stacking plan. In a second example, the handling unit 104 may place the available packages 362 in the storage area 705 or the task location 116 based on their sequential IDs, as described at least with reference to fig. 8. However, the second example may require manipulation of the conveyor belt 110, such as stopping, starting, or decreasing or increasing the speed of the conveyor belt 110. For example, when the handling unit 104 determines that the next parcel in sequence to be placed on the task location 116 is stored in the storage area 705 (e.g., parcel "a" as shown by the second placement 806), the robotic system 100 may have to implement a plan to stop or reduce the speed of the conveyor belt 110 to cause the conveyor belt 110 to stop delivering the next available parcel in the series until a parcel from the storage area 705 is placed on the task location 116 (e.g., stop delivering parcel "C" until parcel "a" is placed on the task location 116 as shown by the second placement 806). The robotic system 100 may then begin or increase the speed of the conveyor belt 110 to deliver the next available parcel in the series to the start location 114. In some embodiments, the robotic system 100 may implement a plan for adjusting the speed of the conveyor belt 110 by generating instructions that control (e.g., start, stop, or adjust) the speed of the conveyor belt 110.
In some embodiments, the first example may consume more resources (e.g., processing time, storage resources) than the second example because all available packages 362 are placed first in storage area 705 and then on task location 116. However, in some embodiments, if available packages 362 are received at the start location 114 in the reverse order in which the packages are to be placed on the task location 116, the second example may consume the same resources as the first example, as all packages must be stored in the storage area 705 and then processed from the storage area 705 to be placed on the task location 116.
FIG. 11 of FIG. 9 illustrates three different processes for placing out-of-order packages onto a platform using a storage area. While all three processes achieve the same end result of placing the available packages 362 of fig. 3 on the platform according to a stacking plan, their methods of handling the packages are different. For example, process 900 of FIG. 9 processes packages on a "priority by order" basis, process 1000 of FIG. 10 is based on "order and store" basis, and process 1100 of FIG. 11 is based on "store first". Further, the above process may be a different implementation of the method of block 680 of fig. 6.
In the "order first" embodiment of process 900, priority is given to placing parcels in order first, followed by processing of the remaining available parcels. That is, if the storage area 705 of FIG. 7 has a package that is next in the sequence to be placed on the platform, the package is placed on the platform before the next available package for import is processed 362.
In the "order and store" embodiment of process 1000, incoming available packages are placed on the platform if they are in order, otherwise the packages are stored in storage area 705. After all available packages have been received and stored in the storage area 705 or platform, any remaining packages in the storage area 705 are processed for placement on the platform.
In a "storage first" implementation of process 1100, all incoming available packages are first stored in storage area 705. After all available packages have been received and stored in the storage area 705, the packages in the storage area 705 are processed for placement on the platform.
Reference is now made to fig. 9, which is a flow diagram of a process 900 for placing an available parcel (e.g., 362 of fig. 3) on a task location (e.g., 116 of fig. 1) using a storage area (e.g., 705 of fig. 7), according to various embodiments. In some embodiments, process 900 may be implemented in the environment of fig. 1 and 7, and as part of block 680 of fig. 6. Additionally, in some embodiments, at least the parcel placement described with reference to fig. 8 is an illustrative example of process 900. Process 900 may be implemented based on execution of instructions stored on one or more of storage devices 204 of fig. 2 by one or more of processors 202 of fig. 2. At block 901, the robotic system 100 may access a stacking plan for available packages 362. A stack plan, such as stack plan 502 of fig. 5, includes details regarding the placement of parcels on task locations 116 (e.g., platforms). The stacking plan 502 also includes information regarding the stacking order in which the packages are to be placed on the task locations 116, such as the stacking order 720 of FIG. 7. In some embodiments, the stacking plan 502 is generated as described with reference to at least block 612 of fig. 6. The handling unit 104 may access a stacking plan 502 stored at a storage device (such as storage device 204) of the robotic system 100. In some embodiments, the stacking plan 502 may be stored in the tracking data 254 of fig. 2.
At block 902, the robotic system 100 may implement a plan for receiving a series of available parcels 362. For example, the robotic system 100 may generate instructions that cause the handling unit 104 to receive available packages 362 that are transported by the conveyor belt 110 of fig. 1 or 7.
At block 903, the robotic system 100 may implement a plan for identifying available packages 362. For example, the robotic system 100 may generate instructions that cause the scanner 715 of fig. 7 to scan the available packages 362 on their way to the handling unit 104 to identify the available packages 362. For example, as available packages 362 are transported on the conveyor belt 110 to the handling unit 104, the scanner 715 may scan the available packages 362 individually as the available packages 362 pass through the scanner 715. Available package 362 may have a code (e.g., a bar code) attached to or printed on the package. The scanner 715 scans the code to obtain identification information of the package (such as the package ID).
At determination block 904, upon receiving the scanned parcel, the robotic system 100 may determine whether the scanned parcel is the parcel that is next in the stacking order 530 to be placed on the platform 116. The robotic system 100 may determine a sequence ID for a package based on the package ID according to the sequence diagram 710.
If the package is the next package in the sequence to be placed on the platform, at block 905, the robotic system 100 may implement a plan for placing the package on the platform according to the stacking plan. For example, the robotic system 100 may generate instructions that cause the handling unit 104 to place a package on the platform according to the stacking plan. It should be noted that the stacking plan defines the arrangement of the parcels on the platform, e.g., where the parcel must be placed on the platform, the orientation of the parcel on the platform, which side of the parcel must rest on the platform, etc., which are described at least with reference to fig. 3A-6. After placing the package on the platform, the robotic system 100 may record (e.g., by one or more of the processors 202 of fig. 2) the sequential ID of the packages placed on the platform for tracking purposes. For example, the robotic system 100 may maintain a sequence counter that represents the sequence ID of the most recently placed packages on the platform.
Referring back to determination block 904, if the package is not the next in order to be placed on the platform, at block 906, the robotic system 100 may implement a plan for storing the package in a storage area (e.g., storage area 705). For example, the robotic system 100 may generate instructions that cause the handling unit 104 to store the package in the storage area 705. In some embodiments, one or more of the available packages 362 stored in the storage area 705 may be referred to as a package group.
At block 907, the robotic system 100 may record storage location information for a storage location where the parcel is stored in the storage area 705. In some embodiments, the storage location information may be 3D information of the storage location. The storage location information for the package may be stored in the storage map along with the package ID of the package and optionally the order ID of the package, as described at least with reference to fig. 7.
After placing the package on the platform or in the storage area 705, at determination block 908, the robotic system 100 may determine (e.g., by one or more of the processors 202 of fig. 2) whether there are any packages in the storage area 705 that are next in the order to be placed on the platform. For example, the robotic system 100 may reference a sequence counter to determine the next sequence ID of a package to be placed on the platform, and a storage map to determine if there are any packages with the next sequence ID, and if so, their storage locations.
If there is a package in the storage area 705 that is the next in the sequence to be placed on the platform, the robotic system 100 may implement a plan for retrieving the identified package from a storage location in the storage area 705 at block 909. For example, the robotic system 100 may generate instructions that cause the handling unit 104 to retrieve the identified package from a storage location in the storage area 705.
At block 910, the robotic system 100 may implement a plan for placing packages on the platform according to the stacking plan. For example, the robotic system 100 may generate instructions that cause the handling unit 104 to place a package on the platform according to the stacking plan. The process of blocks 908 through 910 is repeated until the storage area 705 no longer has any packages to be placed on the platform as the next in-order.
If there are no more parcels in the storage area 705 to be placed on the platform as the next in order, at block 911 the robotic system 100 may determine whether there are any more available parcels 362 to place. For example, the robotic system 100 determines if there are any more packages on the conveyor belt 110 that are still to be processed for placement on the platform. If there are more packages to receive, the process proceeds to block 903 where the next scan package is processed. If all available packages 362 have been received, i.e., there are no more packages to be processed for placement on the platform.
It should be noted that when the robotic system 100 is transporting a package from the storage area 705 to a platform (e.g., in blocks 909 and 910) and if there are more available packages 362 to process on the conveyor belt 110, the conveyor belt 110 may have to stop or the speed of the conveyor belt 110 may have to be reduced to give the handling unit 104 time to move the package from the storage area 705 to the platform. The conveyor belt 110 may stop automatically, for example, if a package at the start position 114 is not collected by the handling unit 104 for a specified duration of time, or in some embodiments, may be stopped or slowed by the robotic system 202.
Fig. 10 is a flow diagram of a process 1000 for placing available packages on task locations using a temporary storage area, according to various embodiments. In some embodiments, process 1000 may be implemented in the environment of fig. 1 and 7 and as part of block 680 of fig. 6. Process 1000 may be implemented based on execution of instructions stored on one or more of storage devices 204 of fig. 2 by one or more of processors 202 of fig. 2. It should be noted that some details are omitted from this process, as they are similar to those described in process 900. At block 1001, the robotic system 100 may access a stacking plan for available packages 362.
At block 1002, the robotic system 100 may implement a plan for receiving a series of available packages 362 (e.g., by the conveyor belt 110).
At block 1003, the robotic system 100 may implement a plan for identifying available packages 362.
At determination block 1004, upon receiving the scanned package, the robotic system 100 may determine whether the package is the next package in the sequence to be placed on the platform. The robotic system 100 may determine a sequence ID for a package based on the package ID according to a sequence diagram.
If the package is the next package in the sequence to be placed on the platform, at block 1005, the robotic system 100 may implement a plan for placing the package on the platform according to the stacking plan.
Referring back to determination block 1004, if the package is not the next in order to be placed on the platform, at block 1006, the robotic system 100 may implement a plan for storing the package in a storage area (e.g., storage area 705).
At block 1007, the robotic system 100 may record storage location information for the storage location where the parcel is stored in the storage area 705.
After placing the package on the platform or in the storage area 805, at determination block 1008, the robotic system 100 may determine whether all available packages 362 have been received. For example, the robotic system 100 determines whether there are any more packages on the conveyor belt 110 that are still to be processed, e.g., for placement on a platform. If there are more packages to receive, the process proceeds to block 1003, where the next scan package is processed.
If all available parcels 362 are received, at determination block 1009, the robotic system 100 may determine whether there are any parcels stored in the storage area 705. If no package is present in the storage area 705, the process 1000 returns. If any packages remain in the storage area 705, at block 1010 the robotic system 100 determines that it is the next package in the sequence to place on the platform. For example, the robotic system 100 may reference a sequence counter to determine a next sequence ID to place a package ID, and a storage map to determine a package having the next sequence ID and a corresponding storage location in the storage area 705.
At block 1011, the robotic system 100 may implement a plan for retrieving the identified package from the determined storage location in the storage area 705.
At block 1012, the robotic system 100 may implement a plan for placing the package on the platform according to the stacking plan. The process of blocks 1010 through 1012 is performed until all packages in the storage area 705 are placed on the platform.
FIG. 11 is a flow diagram of a process 1100 for placing available packages on task locations using a temporary storage area, according to various embodiments. In some embodiments, process 1100 may be implemented in the environment of fig. 1 and 7 and as part of block 680 of fig. 6. Process 1100 may be implemented based on execution of instructions stored on one or more of storage devices 204 of fig. 2 by one or more of processors 202 of fig. 2. It should be noted that some details are omitted from this process, as they are similar to those described in process 900. At block 1101, the robotic system 100 may access a stacking plan for available parcels 362 (e.g., as described at least with reference to 901 of fig. 9).
At block 1102, the robotic system 100 may implement a plan for receiving a series of available packages 362 (e.g., by the conveyor belt 110).
At block 1103, the robotic system 100 may implement a plan for identifying available parcels 362.
At block 1104, the robotic system 100 may implement a plan for storing the package in a storage area (e.g., storage area 705).
At block 1105, the robotic system 100 may record storage location information for a storage location where the parcel is stored in the storage area 705.
At determination block 1106, the robotic system 100 may determine whether all available packages 362 have been received. For example, the robotic system 100 determines whether there are any more packages on the conveyor belt 110 that are still to be processed, e.g., for placement in the storage area 705 or on a platform. If there are more parcels to receive, the process proceeds to block 1103 where the next scanned parcel is processed.
If all available parcels 362 are received, at determination block 1107, the robotic system 100 may determine whether there are any parcels stored in the storage area 795. If no package is present in the storage area 705, the process 1100 returns. If any packages remain in the storage area 705, the robotic system 100 may determine that it is the next package in the sequence to place on the platform at block 1108. For example, the robotic system 100 may reference the sequence counter to determine the next sequence ID to place the package ID and reference the storage map to determine the package having the next sequence ID and its storage location in the storage area 705.
At block 1109, the robotic system 100 may implement a plan for retrieving the identified package from the determined storage location in the storage area 705.
At block 1110, the robotic system 100 may implement a plan for placing a package on the platform according to the stacking plan. The process of blocks 1108 through 1110 are repeated until all of the packages in storage area 705 are placed on the platform.
Conclusion
The foregoing detailed description of the examples of the disclosed technology is not intended to be exhaustive or to limit the disclosed technology to the precise form disclosed. While specific examples of the disclosed technology are described for illustrative purposes, various equivalent modifications are possible within the scope of the disclosed technology, as those skilled in the relevant art will recognize. For example, while processes or blocks are presented in a given order, alternative implementations may perform routines having steps, or employ systems having blocks, in a different order, and some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or subcombinations. Each of these processes or blocks may be implemented in a number of different ways. Additionally, while processes or blocks are sometimes shown as being performed in series, the processes or blocks may instead be performed or implemented in parallel, or may be performed at different times. Moreover, any specific numbers indicated herein are merely examples; alternative implementations may employ different values or ranges.
These and other changes can be made to the disclosed technology in light of the above detailed description. While the detailed description describes certain examples of the disclosed technology and the best mode contemplated, the disclosed technology can be practiced in many ways, no matter how detailed the above description appears. The details of the system may vary widely in its specific implementation, but are still covered by the techniques disclosed herein. As noted above, particular terminology used in describing certain features or aspects of the disclosed technology should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the disclosed technology with which that technology is associated. Accordingly, the invention is not limited except as by the appended claims. In general, the terms used in the following claims should not be construed to limit the disclosed technology to the specific examples disclosed in the specification, unless the above detailed description section explicitly defines such terms.
While certain aspects of the invention are presented below in certain claim forms, applicants contemplate the various aspects of the invention in any number of claim forms. Accordingly, the applicant reserves the right to add additional claims after filing the application to add such additional claims in the present application or in a subsequent application.

Claims (19)

1. A method for operating a robotic system, the method comprising:
implementing a stacking plan for placing a parcel on a platform using an end effector of a robotic arm, wherein the stacking plan represents a horizontal plane of the parcel along the platform and a three-dimensional mapping in multiple layers of the platform, wherein the stacking plan includes a stacking order in which the robotic system is to place the parcel on the platform, and further wherein implementing the stacking plan includes:
accessing the stacking plan for placing the package on the platform;
implementing a plan for receiving the packages one by one in a series;
iteratively processing each parcel in the series, wherein the processing comprises:
determining, using at least one processor of the robotic system, a package identification of a package that is next in the series,
determining a sequential identification of the package using the package identification and the stacking plan,
determining, using the at least one processor and based in part on the order identification, whether the parcel is a parcel to be placed next in the stacking order on the platform,
in response to determining that the parcel is not the parcel to be placed next in the stacking order on the platform, implementing a plan for placing the parcel in a storage area different from the platform using the end effector of the robotic arm, and
recording the package identification and the storage location of the package in the storage area; and
iteratively processing each parcel from a group of parcels representing those parcels stored in the storage area, wherein the processing comprises:
identifying a first parcel from the group of parcels, the first parcel being a parcel to be placed next in the stacking order on the platform,
implementing a plan for retrieving the first package from the storage area using the end effector of the robotic arm and based at least in part on three-dimensional information of a storage location of the first package, an
Implement a plan for placing the first wrap on the platform according to the stacking plan using the end effector of the robotic arm.
2. The method of claim 1, wherein:
determining that the package identification includes determining a code associated with the package as the package travels through a scanning unit of the robotic system en route to a loading unit of the robotic system for placement on the platform;
the code comprises the package identification of the package; and is
The packages pass through the scanning unit in the series.
3. The method of claim 1, wherein processing each package in the series comprises implementing a plan for placing the group of packages in the storage area based on a placement plan.
4. The method of claim 3, wherein implementing the plan for placing the group of parcels based on the placement plan comprises determining a grouping of parcels for placement in the group of parcels in the storage area according to a frangibility rating of the parcels in the group of parcels, a parcel weight range, a height, a parcel type, or a combination thereof.
5. The method of claim 3, wherein implementing the plan for placing the group of parcels based on the placement plan comprises determining a grouping of parcels in the group of parcels based on a configuration of the storage area, the configuration comprising one or more dimensions of the storage area, the one or more dimensions comprising a number of storage racks in the storage area and/or a height, a width, a depth, or an estimated load carrying capacity of at least one storage rack in the storage area.
6. The method of claim 3, wherein implementing the plan for placing the group of packages in the storage area comprises implementing a plan for placing at least some packages of the group of packages laterally adjacent to one another on storage shelves of the storage area.
7. The method of claim 1, wherein processing each parcel in the series comprises implementing a plan for placing the parcel on the platform without moving the parcel to the storage area in response to determining that the parcel is the parcel to be placed next in the stacking order on the platform.
8. The method of claim 7, wherein implementing the stacking plan further comprises:
after placing the package on the platform, determining whether there are any packages in the group of packages in the storage area that are packages to be placed next in the stacking order on the platform; and
in response to determining that a specified parcel from the group of parcels is next in the stacking order, implementing a plan for placing the specified parcel on the platform.
9. The method of claim 8, wherein implementing the plan for placing the designated parcel on the platform comprises implementing a plan for placing the designated parcel on the platform before processing a next parcel in the series.
10. The method of claim 8, wherein:
implementing the plan for placing the designated parcel on the platform comprises implementing a plan for adjusting the speed of a conveying unit to delay receiving a next parcel in the series;
the conveying unit transports the packages one by one for placement on the platform; and
the speed is adjusted prior to placing the designated parcel on the platform.
11. The method of claim 1 wherein processing each package in the series comprises implementing a schedule for storing each of the packages received in the series in the storage area until all of the packages in the series are received.
12. The method of claim 1, wherein generating instructions for receiving the package comprises implementing a plan for receiving the package in an order different from the stacking order.
13. The method of claim 1, wherein implementing a plan for placing the first parcel on the platform in accordance with the stacking plan comprises:
generating a placement plan based on the grouping of parcels, wherein the placement plan represents a two-dimensional mapping of the parcels along a horizontal plane of the platform; and
generating the stacking plan by converting a two-dimensional mapping of a plurality of placement plans to a three-dimensional mapping of the parcel, wherein the three-dimensional mapping represents an arrangement of the parcel on the platform in the plurality of layers, one above the other and with a corresponding placement plan.
14. The method of claim 13, wherein implementing the stacking plan further comprises:
calculating the stacking order based on the stacking plan, wherein the stacking order is used to identify a placement order of the parcels on the platform; and
generating instructions for placing the package on the platform according to the stacking order.
15. A tangible, non-transitory, computer-readable storage medium having stored thereon processor instructions that, when executed by one or more processors of a robotic system, cause the robotic system to perform a method, the method comprising:
accessing a stacking plan for placing packages on a platform;
receiving available parcels designated for placement on the platform, wherein the available parcels are received one-by-one in a series;
determining a package identification for each of the available packages;
obtaining a sequential identification for each of the available parcels using the corresponding parcel identification and the stacking plan, wherein the sequential identification corresponds to an order in which the available parcels are to be placed on the platform;
determining whether a first available package of the available packages is a package to be placed next on the platform in the order based at least in part on a first order identification of the first available package;
storing the first available package in a storage area different from the platform in response to determining that the first available package is not the package to be placed next in the order on the platform;
recording a storage location of the first available package in the storage area;
determining that a second available package of the available packages is a package to be placed next in the order on the platform based at least in part on a second order identification of the second available package, the second available package being the next in the series after the first available package;
placing the second available package on the platform using an end effector of a robotic arm;
determining that the first available package is the package to be placed next in the order on the platform; and
moving the first available parcel from the storage area for placement on the platform using the end effector of the robotic arm.
16. The tangible, non-transitory computer-readable storage medium of claim 15, wherein placing the second available package on the platform comprises:
analyzing the stacking plan for placing the available parcels on the platform, wherein the stacking plan comprises a three-dimensional map representing an arrangement of the parcels on the platform in a plurality of layers, one above the other and each layer having a corresponding placement plan for the parcel as a two-dimensional map of that layer; and
placing the second available package on the platform based on the stacking plan.
17. The tangible, non-transitory computer-readable storage medium of claim 15, wherein:
determining the package identification for each of the available packages comprises scanning a code associated with each of the available packages;
the code includes the package identification of the corresponding package; and
the scanning is performed on the available packages one by one as the packages are received.
18. The tangible, non-transitory computer-readable storage medium of claim 15, wherein moving the first available package from a storage area comprises delaying processing of a third available package of the available packages for placement on the platform prior to moving the first available package, the third available package being a next in the series after the second available package.
19. A robotic system, comprising:
at least one processor; and
at least one memory device communicatively connected to the at least one processor and having instructions stored thereon that, when executed by the at least one processor, cause the robotic system to implement a stacking plan for placing a parcel on a platform using an end effector of a robotic arm, wherein the stacking plan represents a horizontal plane of the parcel along the platform and a three-dimensional map in multiple layers of the platform, and wherein the stacking plan includes a stacking order in which the end effector of the robotic arm is to place the parcel on the platform,
wherein to implement the stacking plan, the robotic system is configured to:
accessing the stacking plan for placing the package on the platform,
the packages are received one-by-one in a series,
iteratively processing each parcel in the series, wherein the processing comprises:
determining a package identification of a package that is next in the series;
obtaining a sequential identification of the package using the package identification and the stacking plan;
determining whether the parcel is a parcel to be placed next in the stacking order on the platform based at least in part on the order identification;
in response to determining that the parcel is not the parcel to be placed next in the stacking order on the platform, implement a plan for placing the parcel in a storage area different from the platform using an end effector of the robotic arm; and
recording the package identification and the storage location of the package in the storage area, an
Iteratively processing each parcel from a group of parcels representing those parcels stored in the storage area, wherein the processing comprises:
identifying a first parcel from the group of parcels, the first parcel being a parcel to be placed next in the stacking order on the platform,
implementing a plan for retrieving the first package from the storage area using an end effector of the robotic arm and based at least in part on three-dimensional information of a storage location of the first package, an
Implement a plan for placing the first wrap on the platform according to the stacking plan using the end effector of the robotic arm.
CN202010221015.6A 2019-05-31 2020-03-20 Robotic system for handling out-of-order arriving packages Active CN111498212B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/428,843 2019-05-31
US16/428,843 US10696494B1 (en) 2019-05-31 2019-05-31 Robotic system for processing packages arriving out of sequence
CN202010205038.8A CN112009811A (en) 2019-05-31 2020-03-20 Robotic system for handling out-of-order arriving packages

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202010205038.8A Division CN112009811A (en) 2019-05-31 2020-03-20 Robotic system for handling out-of-order arriving packages

Publications (2)

Publication Number Publication Date
CN111498212A CN111498212A (en) 2020-08-07
CN111498212B true CN111498212B (en) 2021-05-07

Family

ID=71877004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010221015.6A Active CN111498212B (en) 2019-05-31 2020-03-20 Robotic system for handling out-of-order arriving packages

Country Status (1)

Country Link
CN (1) CN111498212B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112499087A (en) * 2020-10-30 2021-03-16 平潭综合实验区百汉国际贸易有限公司 Package packing system for logistics sorting and working method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4641271A (en) * 1983-11-09 1987-02-03 Hitachi, Ltd. Piling planning method and piling system of cargoes by palletizing robot
CN108776879A (en) * 2018-06-04 2018-11-09 江苏楚门机器人科技有限公司 A kind of pile shape planing method based on weight study
CN109359739A (en) * 2018-09-13 2019-02-19 深圳市递四方信息科技有限公司 Stacked combination method, apparatus, equipment and storage medium based on genetic algorithm

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4641271A (en) * 1983-11-09 1987-02-03 Hitachi, Ltd. Piling planning method and piling system of cargoes by palletizing robot
CN108776879A (en) * 2018-06-04 2018-11-09 江苏楚门机器人科技有限公司 A kind of pile shape planing method based on weight study
CN109359739A (en) * 2018-09-13 2019-02-19 深圳市递四方信息科技有限公司 Stacked combination method, apparatus, equipment and storage medium based on genetic algorithm

Also Published As

Publication number Publication date
CN111498212A (en) 2020-08-07

Similar Documents

Publication Publication Date Title
US11472640B2 (en) Robotic system for palletizing packages using real-time placement simulation
US11319166B2 (en) Robotic system with packing mechanism
US11794346B2 (en) Robotic system with error detection and dynamic packing mechanism
JP7429386B2 (en) Robotic system for handling packages that arrive out of order
CN111605938B (en) Robotic system for palletizing packages using real-time placement simulation
CN111498212B (en) Robotic system for handling out-of-order arriving packages
CN111498214B (en) Robot system with packaging mechanism
CN111559544B (en) Robot system with error detection and dynamic packaging mechanism
JP2024075580A (en) Robot system with packing mechanism

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant