Robot system with multiple position control mechanism
The robotic system addresses the lack of acuity and adaptability in robots by using a multi-position arrangement control mechanism to dynamically adjust motion plans and stack height limits, resulting in improved object placement and stacking efficiency.
Patent Information
- Application Number
- JP2024541643
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-11-27
- Filing Date
- 2023-11-27
- Publication Date
- 2025-05-16
- Estimated Expiration
- 2043-11-27
AI Technical Summary
Robots lack the acuity and adaptability to perform complex tasks with the granularity and flexibility required in real-world conditions, leading to inefficiencies in object placement and stacking.
A robotic system with a multi-position arrangement control mechanism that dynamically adjusts motion plans and stack height limits based on real-time sensor data and object properties, allowing for optimal placement and stacking of objects across multiple deployment regions.
The system enhances control, usability, and flexibility in object placement, improving stacking efficiency and reducing collision likelihood by dynamically adapting to real-world conditions and object anomalies.
Smart Images

Figure 0007678464000001 
Figure 0007678464000002 
Figure 0007678464000003
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATION(S) This application claims the benefit of U.S. Provisional Patent Application No. 63 / 428,110, filed November 27, 2022, which is incorporated by reference in its entirety.
[0002] The present technology is directed generally to robotic systems, and more specifically to systems, processes, and techniques for managing the placement of objects. [Background technology]
[0003] Due to increasing performance and decreasing costs, many robots (e.g., machines configured to automatically / autonomously perform physical actions) are becoming widely used in many fields. For example, robots can be used to perform various tasks (e.g., manipulating or transporting objects through space) in manufacturing and / or assembly, placing and / or packing, transporting and / or shipping, etc. In performing a task, the robot aims to replicate some aspects of human behavior, thereby replacing or reducing human intervention that would otherwise be required to perform the task.
[0004] However, despite technological advances, robots often lack the necessary sophistication to replicate the human agility and / or adaptability required to perform more complex and challenging tasks. For example, robots often lack the granularity of control and flexibility in the actions they perform to fully utilize available resources. Also, the human behaviors and experiences required to successfully perform tasks under a variety of real-world conditions are often difficult to capture or translate for robotic implementation. Thus, there remains a need for improved techniques and systems for controlling and managing various aspects of robots to complete tasks despite a variety of real-world factors. [Brief description of the drawings]
[0005] [Figure 1] FIG. 1 illustrates an exemplary environment in which a robotic system having a multi-position control mechanism may operate. [Diagram 2] FIG. 1 is a block diagram illustrating a robotic system in accordance with one or more embodiments of the present technology. [Figure 3A] FIG. 1 is a diagram of a robotic system in accordance with one or more embodiments of the present technology. [Figure 3B] FIG. 1 is an exemplary task station diagram of a robotic system in accordance with one or more embodiments of the present technique. [Figure 4A] FIG. 13 is an exemplary segmented diagram of a deployment location in accordance with one or more embodiments of the present technology. [Figure 4B] FIG. 13 is an exemplary segmented diagram of a deployment location in accordance with one or more embodiments of the present technology. [Diagram 5] 5A-F are diagrams illustrating implementations of placement rules in accordance with one or more embodiments of the present technology. [Figure 6] 6A-B are exemplary deployment sequence diagrams in accordance with one or more embodiments of the present technology. [Figure 7] FIG. 2 is a flow diagram of a first exemplary method of operating the robotic system of FIG. 1 in accordance with one or more embodiments of the present technique. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0006] Described herein are systems and methods for a robotic system with a multi-position placement control mechanism. A robotic system (e.g., an integrated system of devices that perform one or more designated tasks) can be configured to increase control, usability, and flexibility by placing objects (e.g., packages, boxes, cases, etc.) on placement platforms. For example, the robotic system can stack one or more objects, such as pallets, on each of the placement platforms while adhering to the stack height limit 530 assigned to each placement platform.
[0007] The robotic system can place and stack objects on a placement platform based on identifying distinct placement areas within the task location. As an illustrative example, the robotic system can control a palletizing robot at the task location to place objects on one or more pallets (e.g., a placement platform) located at the task location. Each pallet can have multiple distinct placement areas thereon, such as to form multiple distinct stacks of objects on a pallet or each of multiple pallets.
[0008] The separate placement areas (e.g., stacking positions) can be calculated based on fixed or matching basic dimensions (e.g., length and width) of the objects. In other embodiments, each of the separate placement areas can correspond to a unique footprint for one or more objects (e.g., a unique shape, a unique set of lateral dimensions, and / or a corresponding pose of the objects). In other words, each of the separate placement areas can be calculated or specified to be for placing or stacking one or more types of objects having matching or otherwise related footprints. In some embodiments, the robotic system can generate individual stack height limits for each separate placement area. Additionally, the robotic system can dynamically adjust the stack height limits 530 of the separate placement areas.
[0009] As the objects are transported, the robotic system can dynamically track the execution of the motion plan to track and identify the placed objects (e.g., objects in each stack or top object), stack heights, and / or characteristic properties (e.g., dimensions) of the objects in each of the separate placement areas. In some embodiments, the robotic system can calculate / estimate the current stack height using the known dimensions and tracked orientations of previously placed objects in each of the separate placement areas. In other embodiments, the robotic system can use sensor data to determine the stack heights in the separate placement areas in real time. The robotic system can use the current stack heights to calculate candidate stack heights that would result from placing the target object according to its pose in the corresponding separate placement area. Using the candidate stack heights, the robotic system can determine whether placing the target object in the candidate placement area complies with the stack height constraints 530 and corresponding rules. Based on this determination, the robotic system can derive an optimal placement area for the target object that increases stacking efficiency and reduces the likelihood of collision across multiple placement areas.
[0010] To simplify the stacking process, the robotic system can determine the sequence of the separate placement areas. In some embodiments, the robotic system can determine the sequence of the separate placement areas according to the distance between the separate placement areas and a maneuvering robot (e.g., a robot with an arm, a transport unit, etc.) configured to place objects in the separate placement areas. For example, the robotic system can assign a sequence identifier of 1 to the farthest separate placement area and a higher number as the sequence identifier 450 to the closer separate placement areas (e.g., 3 for the closest of the three placement areas).
[0011] The robotic system can use this sequence to generate simplified rules that can guide object stacking operations. Continuing with the example sequence above, the robotic system can include a stacking rule that requires a stack height in a lower sequence determined placement area to be higher than a higher sequence determined placement area. This rule states that if i>j, then h i ≦h j The parameters i and j can represent distinct placement region instances, and h i and h j may represent the current and / or candidate stack heights in the corresponding separate placement regions. Further details regarding sequence determination and stacking rules are described below.
[0012] By determining the sequence of placement areas, such as according to the lateral separation distance from the maneuvering robot, the robotic system can simplify the stacking rules. For example, the stacking rules can eliminate comparisons based on multiple situations and corresponding lines of code, memory, and execution time. Based on this simplification, the robotic system can dynamically consider and account for real-world conditions to form more relevant and efficient object stacks. For example, using the simplified rules, the robotic system can group objects with similar footprints together, quickly consider alternative stacking poses of target objects, consider dynamic / off-plan arrival of objects, etc. For comparison, a conventional system may require all objects to be stacked in one location and then moved to another placement area until the resulting stack reaches a limit. Such a method may produce undesirable stacking (e.g., stacked objects on the bottom tier have smaller lateral dimensions than objects on the top tier), fail to consider dynamic conditions (e.g., off-plan arrival / sequence of objects), and reduce the overall placement efficiency of the target location (e.g., within one pallet).
[0013] The robotic system can be configured to dynamically adjust the motion plan, placement areas, and / or stack height limits to account for, for example, unexpected conditions (e.g., packaging anomalies). For example, placing an object may involve a top surface that is deformed, bent, misaligned, partially closed, and / or otherwise physically different than the intended condition. Such unexpected conditions may affect the ability to stack additional objects in a placement area and / or the stack height limits of other placement areas. The robotic system can detect such unexpected conditions and dynamically adjust the assigned placement area and / or stack height limits. Based on the dynamic adjustments, the robotic system can update the motion plan to account for the unexpected conditions.
[0014] In the following description, numerous specific details are set forth to provide a thorough understanding of the presently disclosed technology. In other embodiments, the technology introduced herein can be practiced without these specific details. In other cases, well-known features, such as specific functions or routines, are not described in detail to avoid unnecessarily obscuring the present disclosure. References to "embodiment," "one embodiment," and the like in this detailed description mean that the particular feature, structure, material, or characteristic being described is included in at least one embodiment of the present disclosure. Thus, appearances of such phrases herein do not necessarily all refer to the same embodiment. On the other hand, such references are not necessarily mutually exclusive. Moreover, particular features, structures, materials, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that the various embodiments shown in the figures are merely illustrative representations and are not necessarily drawn to scale.
[0015] For clarity, some details describing structures or processes that are well known and often associated with robotic systems and subsystems, but that may unnecessarily obscure some important aspects of the disclosed technology, are not included in the following description. Furthermore, in the following disclosure, some embodiments of different aspects of the technology are shown, but some other embodiments may have different configurations or different components than those described in this section. Thus, the disclosed technology may have other embodiments that have additional elements or that do not have some of the elements described below.
[0016] Many embodiments or aspects of the disclosure described below may take the form of computer-executable or processor-executable instructions, including routines executed by a programmable computer or processor. Those skilled in the art will appreciate that the disclosed technology may be implemented in computer or processor systems other than those shown and described below. The technology described herein may be embodied in a special-purpose computer or data processor that is specifically programmed, configured, or constructed to execute 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, including Internet appliances and handheld devices, including palmtop computers, wearable computers, mobile or cellular phones, multiprocessor systems, processor-based or programmable consumer electronics, network computers, minicomputers, and the like. Information processed by these computers and processors may be displayed on any suitable display medium, including a liquid crystal display (LCD). Computer processor-executable tasks or instructions for executing processor-executable tasks may be stored 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.
[0017] The terms "coupled" and "connected," along with their derivatives, may be used herein to describe a structural relationship between components. It should be understood that these terms are not intended as synonyms for each other. Rather, in certain embodiments, "connected" may be used to indicate that two or more elements are in direct contact with each other. Unless otherwise clear by context, the term "coupled" may be used to indicate that two or more elements are in contact with each other, either directly or indirectly (with other intervening elements between the elements), or that two or more elements cooperate or interact with each other (e.g., in a causal relationship with respect to transmission / reception of signals, or with respect to function calls, etc.), or both.
[0018] The right environment 1 is an exemplary environmental diagram in which a robotic system 100 having a multi-position control 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 multi-position control mechanism may be performed or implemented by various units.
[0019] In the example shown in FIG. 1, the robotic system 100 may include an unloading unit 102, a transport unit 104 (e.g., a palletizing robot and / or a piece picker robot), a transport unit 106, a loading unit 108, or a combination thereof, in a warehouse or distribution / transportation hub. Each unit of the robotic system 100 may be configured to perform one or more tasks. The tasks may be combined in sequence to perform operations to achieve a goal, such as unloading objects from a truck or van and storing them in a warehouse, or unloading objects from a storage point and preparing them for shipment. In another example, a task may include placing an object at a destination point (e.g., on a pallet and / or inside a bin / cage / box / case). As described below, the robotic system may derive a plan (e.g., placement area / or orientation, a sequence for transporting the object, and / or a corresponding motion plan) for placing and / or stacking the object. Each of the units may be configured to perform a sequence of actions (e.g., by operating one or more components of the unit) according to one or more of the derived plans to perform the task.
[0020] In some embodiments, a task may include manipulating (e.g., moving and / or reorienting) a target object 112 (e.g., one of a package, a box, a case, a cage, a pallet, etc., corresponding to the task being performed) from a start location 114 to a task location 116. For example, the unloading unit 102 (e.g., a devanning robot) may be configured to transport the target object 112 from a position in a transport vehicle (e.g., a truck) to a position on a conveyor belt. Also, the transport unit 104 may be configured to transport the target object 112 from one position (e.g., a conveyor belt, a pallet, or a container) to another position (e.g., a pallet, a container, etc.). In another example, the transport unit 104 (e.g., a palletizing robot) may be configured to transport the target object 112 from a supply position (e.g., a pallet, a pick-up area, and / or a conveyor) to a destination pallet. Upon completing an operation, the delivery unit 106 may transport the target object 112 from an area associated with the transport unit 104 to an area associated with the loading unit 108, and the loading unit 108 may transport the target object 112 from the transport unit 104 to a storage location (e.g., a location on a shelf) (e.g., by moving a pallet carrying the target object 112). More details regarding the tasks and associated actions are provided below.
[0021] For illustrative purposes, the robotic system 100 is described in the context of a distribution center, but it will be understood that the robotic system 100 can be configured to perform tasks in other environments / for other purposes, such as manufacturing, assembly, packaging, healthcare, and / or other types of automation. It will also be understood that the robotic system 100 can include other units, such as manipulators, service robots, modular robots, etc., not shown in FIG. 1 . For example, in some embodiments, the robotic system 100 can include a depalletizing unit for transporting objects from a cage cart or pallet to a conveyor or other pallet, a pallet switching unit for transporting objects from one pallet to another pallet, a packaging unit for wrapping objects, a sorting unit for grouping objects according to one or more characteristics of the objects, a piece-picking unit for manipulating objects in different ways (e.g., to sort, group, and / or transport) according to one or more characteristics of the objects, or a combination thereof.
[0022] The robotic system 100 may include and / or be coupled to physical or structural members (e.g., robotic manipulator arms) connected by joints for movement (e.g., rotational and / or translational displacement). The structural members and joints may form kinematic chains configured to manipulate end effectors (e.g., grippers) configured to perform one or more tasks (e.g., grasping, spinning, welding, etc.) depending on the use / operation of the robotic system 100. The robotic system 100 may include actuation devices (e.g., motors, actuators, wires, artificial muscles, electroactive polymers, etc.) configured to drive or manipulate (e.g., displace and / or reorient) the structural members around or at the corresponding joints. In some embodiments, the robotic system 100 may include transport motors configured to transport the corresponding units / chassis from position to position.
[0023] The robotic system 100 may include sensors configured to obtain information used to perform tasks such as manipulating structural members and / or transporting the robotic unit 440. The sensors may include devices configured to detect or measure one or more physical characteristics of the robotic system 100 (e.g., the status, condition, and / or location of one or more structural members / joints thereof) and / or one or more physical characteristics of the surrounding environment. Some examples of sensors may include accelerometers, gyroscopes, force sensors, strain gauges, tactile sensors, torque sensors, position encoders, etc.
[0024] In some embodiments, for example, the sensors may include one or more imaging devices (e.g., visual and / or infrared cameras, 2D and / or 3D imaging cameras, distance measuring devices such as lidar or radar, etc.) configured to detect the surrounding environment. The imaging devices may generate a representation of the detected environment, such as a digital image and / or a point cloud, that may be processed via machine / computer vision (e.g., for automated inspection, robotic guidance, or other robotic applications). As described in more detail below, the robotic system 100 may process the digital image and / or point cloud to identify the target object 112, the start position 114, the task position 116, the pose of the target object 112, a confidence measure for the start position 114 and / or pose, or a combination thereof.
[0025] To manipulate a target object 112, the robotic system 100 can capture and analyze images of a designated area (e.g., a pick-up location, such as in a truck or on a conveyor belt) to identify the target object 112 and its start location 114. Similarly, the robotic system 100 can capture and analyze images of another designated area (e.g., a drop-off point for placing the object on a conveyor, a location for placing the object in a pallet, or a location on a pallet for stacking) to identify a task location 116. For example, the imaging device can 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., a drop-off area). Based on the captured images, the robotic system 100 can determine the start location 114, the task location 116, associated poses, a deployment plan, a transfer sequence, and / or other processing results, as described below.
[0026] In some embodiments, for example, the sensors may include position sensors (e.g., position encoders, potentiometers, etc.) 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 to track the position and / or orientation of the structural members and / or joints during the performance of a task.
[0027] The right system 2 is a block diagram illustrating a robotic system 100, in accordance with one or more embodiments of the present technology. In some embodiments, for example, the robotic system 100 (e.g., one or more of the units and / or robots described above) can 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 combinations thereof. The various devices can be coupled to each other via wired and / or wireless connections. For example, the robotic system 100 may include buses 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 IEEE (Institute of Electrical and Electronics Engineers) standard 1394 bus (also called "Firewire"). Also, for example, the robotic system 100 may include bridges, adapters, processors, or other signal-related devices to provide wired connections between devices. Wireless connections may be based on, for example, cellular communication protocols (e.g., 3G, 4G, LTE, 5G, etc.), wireless local area network (LAN) protocols (e.g., Wireless Fidelity (WIFI)), peer-to-peer or device-to-device communication protocols (e.g., Bluetooth, Near Field Communication (NFC), etc.), Internet of Things (IoT) protocols (e.g., NB-IoT, LTE-M, etc.), and / or other wireless communication protocols.
[0028] 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 in a storage device 204 (e.g., a computer memory). In some embodiments, the processor 202 may be included in a separate / standalone controller operably coupled to other electronic / electrical devices shown in FIG. 2 and / or to the robotic unit 440 shown in FIG. 1. The processor 202 may execute program instructions for controlling / interfacing with other devices, thereby causing the robotic system 100 to perform actions, tasks, and / or operations.
[0029] The storage device 204 may include a non-transitory computer-readable medium having program instructions (e.g., software) stored thereon. Some examples of the storage device 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 magnetic disk drives). Other examples of the storage device 204 may include portable memory drives and / or cloud storage devices.
[0030] In some embodiments, the storage device 204 can be used to further store and provide access to the processing results and / or predetermined data / thresholds. For example, the storage device 204 can store master data 252 including descriptions 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 can include enrollment data 254 for each such object. The enrollment data 254 can include dimensions, shapes (e.g., templates for possible poses and / or computer-generated models for recognizing objects in various poses), color schemes, images, identification information (e.g., bar codes, quick response (QR) codes, logos, etc., and / or their expected locations), expected weights, other physical / visual characteristics, or combinations thereof, of the objects expected to be manipulated by the robotic system 100. In some embodiments, the master data 252 may include manipulation-related information about the objects, such as each object's center of gravity (CoM) location or an estimate thereof, expected sensor measurements (e.g., force, torque, pressure, and / or adhesion) corresponding to one or more actions / manipulations, or a combination thereof.
[0031] The communication device 206 may include circuitry configured to communicate with external or remote devices over a network. For example, the communication device 206 may include a receiver, a transmitter, a modulator / demodulator (modem), a signal detector, a signal encoder / decoder, a connector port, a network card, etc. The communication device 206 may be configured to transmit, 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 with systems or devices external to the robotic system 100 (e.g., for purposes of reporting, data collection, analysis, and / or troubleshooting).
[0032] The input / output devices 208 can include user interface devices configured to communicate information to and / or receive information from a human operator. For example, the input / output devices 208 can include a display 210 and / or other output devices (e.g., speakers, haptic circuitry, or tactile feedback devices, etc.) for communicating information to a human operator. The input / output devices 208 can also include control or receiving devices, such as a keyboard, mouse, touch screen, microphone, user interface (UI) sensors (e.g., cameras for receiving motion commands), wearable input devices, etc. In some embodiments, the robotic system 100 can use the input / output devices 208 to interact with a human operator in performing actions, tasks, operations, or combinations thereof.
[0033] The robotic system 100 may include physical or structural members (e.g., robotic manipulator arms) that are articulated 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., grasping, spinning, welding, etc.) according to a 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) the structural members around or at the corresponding joints. In some embodiments, the robotic system 100 may include a transport motor 214 configured to transport a corresponding unit / chassis between locations.
[0034] The robotic system 100 may include sensors 216 configured to obtain information used to perform tasks, such as manipulating structural members and / or transporting the robotic unit 440. The sensors 216 may include devices configured to detect or measure one or more physical characteristics of the robotic system 100 (e.g., the status, condition, and / or location of one or more structural members / joints thereof) and / or one or more physical characteristics of the surrounding environment. Some examples of the sensors 216 may include accelerometers, gyroscopes, force sensors, strain gauges, tactile sensors, torque sensors, position encoders, etc.
[0035] In some embodiments, for example, the sensor 216 may include one or more imaging devices 222 (e.g., visual and / or infrared cameras, 2D and / or 3D imaging cameras, distance measuring devices such as lidar or radar, etc.) configured to detect the surrounding environment. The imaging devices 222 may generate a representation of the detected environment, such as a digital image and / or a point cloud, which may be processed via machine / computer vision (e.g., for automated inspection, robotic guidance, or other robotic applications). As described in more detail below, the robotic system 100 (e.g., via the processor 202) may process the digital image and / or point cloud to identify the target object 112 of FIG. 1, the start position 114 of FIG. 1, the task position 116 of FIG. 1, the pose of the target object 112, a confidence measure for the start position 114 and / or pose, or a combination thereof.
[0036] To manipulate the target object 112, the robotic system 100 (e.g., via the various circuits / devices described above) can capture and analyze images of a designated area (e.g., a pick-up location, such as in a truck or on a conveyor belt) to identify the target object 112 and its start location 114. Similarly, the robotic system 100 can capture and analyze images of another designated area (e.g., a drop-off point for placing the object on a conveyor, a location for placing the object in a pallet, or a location on a pallet for stacking) to identify a task location 116. For example, the imaging device 222 can 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., a drop-off area). Based on the captured images, the robotic system 100 can determine the start location 114, the task location 116, associated poses, placement areas, and / or other processing results, as described below. More details regarding the dynamic placement algorithm are provided below.
[0037] In some embodiments, for example, the sensors 216 may include position sensors 224 (e.g., position encoders, potentiometers, etc.) 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 positions and / or orientations of the structural members and / or joints during the performance of a task.
[0038] Examples of object transportation and placement 3A is a diagram of the robotic system 100 of FIG. 1 in accordance with one or more embodiments of the present technology. The robotic system 100 can include or be communicatively coupled to a robotic arm 302 having an end effector 304 (e.g., a gripper). The robotic arm 302 can be one or part of one of the robotic units 440 shown in FIG. 1 (e.g., the example of the transport unit 104 of FIG. 1). For example, the robotic arm 302 can include an industrial robotic system used in industrial applications including package handling applications. The robotic arm 302 can be articulated along or about several axes, for example, in a six-axis industrial robotic arm structure.
[0039] The robotic arm 302 can be configured to transport target objects 112 between a start location 114 in FIG. 1 and a task location 116 in FIG. 1. As shown in FIG. 3A, the start location 114 can correspond to a location (e.g., an end / entry point) on a conveyor 306 (e.g., an instance of a transport unit 106 in FIG. 1). The task location 116 of the robotic arm 302 can be a location on or within a placement platform 308 (e.g., a pallet). For example, the robotic arm 302 can be configured to pick objects 112 from the conveyor 306 and place them in / on the placement platform 308 for transport to another destination / task.
[0040] The end effector 304 may include any one or more components coupled to a distal end of the robot arm 302. The end effector 304 may be configured to interact with one or more objects. In some embodiments, the end effector 304 may include a force-torque (FT) sensor (not shown), an arm interface, a gripper system, and / or a gripper interface. For illustrative purposes, the end effector 304 is shown as having a row of suction cups, but it is understood that the end effector 304 may have different configurations. For example, the end effector 304 may include a suction pad with an integrated suction channel, a jaw-type gripper, or any other type of gripping system for gripping an object.
[0041] The robotic system 100 can use one or more of the sensors 216 of FIG. 2 when performing the transfer operation with the robotic arm 302. The robotic system 100 can include or be coupled to a set of sensors (e.g., 2D and / or 3D sensors, such as cameras and / or depth sensors) at or around the start location 114 and / or the task location 116. In some embodiments, the robotic system 100 can include or be coupled to a top-view sensor 310 above and oriented toward the task location 116, and / or a side-view sensor adjacent to and oriented laterally toward the task location 116. The robotic system 100 can likewise include one or more source sensors 314 oriented toward the start location 114. The sensors can be configured to image and / or analyze the corresponding locations. For example, the top-view sensor 310 can generate and / or process image data depicting a top view of the placement platform 308 and / or objects thereon. The side-view sensor may also generate and / or process image data depicting a side-view of the placement platform 308 and / or objects thereon.
[0042] The robotic system 100 can use image data from the sensor 216 to perform a task, such as transporting an object from a start location 114 to a task location 116. Thus, the robotic system 100 can use the image data to derive and execute one or more placement plans (e.g., descriptions of the quantity / identity of objects and / or their poses and physical placement on one or more platforms) and / or motion plans (e.g., descriptions of the physical movements of the robotic arm to transport corresponding objects) to perform the task. As described in more detail below, the robotic system 100 can derive and / or dynamically adjust placement plans for placing objects in a multi-tier stack on the placement platform 308. The plans can accommodate one or more objects being placed on top of (e.g., stacked on) other objects.
[0043] 3B is a diagram of an example task station 350 of the robotic system 100 of FIG. 1 in accordance with one or more embodiments of the present technology. The example task station 350 can be a location where the robotic arm 302 is configured to perform a task / operation. The example task station 350 can have multiple sources 352, such as separate conveyors, configured to separately and / or independently provide target objects or packages. The task station 350 can receive target objects via the sources 352, and the robotic arm 302 can transport the target objects to one or more destinations 354 (e.g., pallets).
[0044] Each of the destinations 354 can have multiple placement locations 356 (e.g., P1-P4, P1-P5, etc.) for the target objects. As described in more detail below, the placement locations 356 can be sequenced or ordered, for example, according to a separation distance between the corresponding locations and the robotic arm 302. In the example shown in FIG. 3B, the furthest placement location on pallet D1 can be assigned the lowest identifier P1 and the closest placement location can be assigned the highest identifier P4. The robotic system 100 can use the sequence and corresponding placement rules to select appropriate placement / stacking locations for the incoming objects.
[0045] In some embodiments, when the task station 350 includes multiple placement surfaces, the robotic system 100 can assign and utilize a preferred approach direction 360 for each placement surface. In the example shown in FIG. 3B, the preferred approach direction 360 for pallet D1 can correspond substantially to a clockwise direction, and the preferred approach direction 360 for pallet D2 can correspond to a counterclockwise direction. During the motion plan, the robotic system 100 can provide a higher weighting to follow the preferred approach direction 360 when placing an object on the corresponding placement surface. Thus, the robotic system 100 can reduce the likelihood of colliding with objects stacked on other placement surfaces.
[0046] The robotic system 100 may further use the preferred approach direction 360 in determining the sequence of placement locations 356 in each placement plane. For example, when two or more placement locations in a given placement plane have separation distances within a threshold range of each other, the robotic system 100 may use the preferred approach direction 360 to determine a sequence of such placement locations. The robotic system 100 may assign lower sequence identifiers 450 to placement locations that are further along the preferred approach direction 360. Using the example shown in FIG. 3B, the robotic system 100 may determine placement locations P2 and P3 on pallet D1 to be within the threshold range. Given a clockwise orientation for the preferred approach direction 360, the robotic system 100 may assign a lower identifier P2 to the location that is further along the preferred approach direction 360. Similarly, the robotic system 100 may determine a sequence of P2-P4 on pallet D2.
[0047] Using the sequenced placement positions 356, the robotic system 100 can control object placement, for example, when deriving a packing plan (e.g., the positions of objects in a stack on a placement surface), when selecting which target objects need to be operated on, when selecting placement positions for target objects, when deriving a motion plan, when executing / performing a motion plan, or a combination thereof. For example, when (1) arrival timing and availability of targets at the source 352 is controllable and (2) target content per platform is available, the robotic system 100 can derive a packing plan using the sequenced placement positions 356 and placement rules. Also, for example, when (1) arrival timing is uncontrollable and (2) target content is available, the robotic system 100 can use the sequenced placement positions 356 and placement rules to efficiently derive placement positions and derive a packing plan in real-time as objects are received at the source 352.
[0048] Additionally, when the task station 350 includes multiple sources 352, the robotic system 100 can use the sequence placement positions 356 and placement rules to select which of the available objects to deliver first. In the example shown in FIG. 3B, the robotic system 100 can compare the sequence determined placement positions (e.g., when a placement plan is available or according to dynamic derivation of placement positions) of the target objects T1-T3 available to the source 352. Based on this comparison, the robotic system 100 can select one of the target objects having a placement position furthest from the robot arm 302 and / or according to other applicable rules. Similarly, when an available target object can be placed in more than one placement position, the robotic system 100 can select one of the placement positions furthest from the robot arm 302.
[0049] Placement area segmentation example 4A-4B are exemplary segmented diagrams of a placement location 450 in accordance with one or more embodiments of the present technology. FIG. 4A illustrates an exemplary robotic unit 440 (e.g., a palletizing robot) manipulating a robotic arm 302 to place a target package 410 onto a base surface 408 of a placement platform 308. As shown in FIG. 4A, the base surface 408 can be divided into separate placement locations 430. FIG. 4A also illustrates an example of an anomalous package 420 having anomalous object properties 402 (e.g., a deformed top surface) that interferes with the robotic system 100 (e.g., preventing additional stacking of the package on top surface). FIG. 4A illustrates an electronic display 401 showing the robotic unit 440, the robotic arm 302, the placement platform 308, the target package 410, and the anomalous package 420. FIG. 4A also illustrates a pop-up display identifying the anomalous object properties 402 (e.g., one or more physical properties of a detected object that deviate from a known corresponding scale) of the anomalous package 420. FIG. 4B is a side view of an exemplary placement assembly 400.
[0050] 1 can be configured to use robotic units 440 to form stacks on one or more placement platforms 308. For example, robotic system 100 can use one palletizing robot (e.g., one station) to form stacks of one pallet or multiple pallets. These stacking configurations and executions can be used to fulfill multiple and / or complex tasks, such as to fulfill multiple orders (e.g., each pallet representing an order) and / or to place mixed sets of stockkeeping units (SKUs) or item types on one or more of the platforms.
[0051] In fulfilling multiple and / or complex tasks, the robotic system 100 can form multiple separate stacks on one or more of the one or more placement platforms 308. Accordingly, the robotic system 100 can divide the base 408 of the corresponding placement platform 308 into multiple placement areas. Each placement area can represent a site or location of a corresponding object stack. In some embodiments, the robotic system 100 can dynamically divide the base 408 and calculate the placement areas according to incoming or accessible objects in real time. In other embodiments, the robotic system 100 can use a packing planner (e.g., a dedicated processor set, engine, software, or combination thereof) to divide the base 408 according to one or more predefined goals (e.g., packing density, pallet height restrictions, shipping manifest, associated thresholds or rules, or combinations thereof). The robotic unit 440 can form multiple stacks of objects on one or more of the pallets by receiving incoming objects from one or more sources (e.g., conveyors) and transporting each target package to one of the placement areas.
[0052] When forming and managing stacks, the robotic system 100 can detect or recognize objects using one or more sensor data. For example, the robotic system 100 can receive image data (e.g., 2D images, 3D depth maps, or a combination thereof) from a source sensor 314 of FIG. 3A indicating the start location 114 (e.g., one or more conveyors 306 providing objects to the station) of FIG. 1 or other similar sensors 216 of FIG. 2. The robotic system 100 can analyze the image data in real time to determine one or more physical properties of the received target package 410, such as the dimensions (e.g., length, width, or height), shape, contour, texture (e.g., image, writing, or other visual characteristics of the object surface(s)), object pose, and / or other physical properties of the target package 410 and the placement platform 308. In some embodiments, for example, the robotic system 100 can use depth measurements (e.g., point cloud data) from one or more imaging devices 222 of FIG. 2. Since the vertical position of the ground and / or placement platform 308 (e.g., the height of the placement platform's top surface) is known, the robotic system 100 can use the depth measurements to calculate the height / contour of the platform 308 and the exposed top surface(s) of the target package 410. Additionally or alternatively, the robotic system 100 can detect or recognize the received object by comparing one or more physical properties (e.g., sensor data such as object texture or dimensions) to master data. Furthermore, the robotic system 100 can detect the object by determining the object's location, the object's physical edges / boundaries, or a combination thereof.
[0053] When generating or adjusting a packing plan for each platform, the robotic system 100 can use the lateral dimensions (e.g., length, width) of the intended or available packages to divide the platform's base and calculate the placement locations 430. Given the intended or intended packing target (e.g., via upstream sensor information, shipping manifest, etc.), the robotic system 100 can determine a stacking orientation and corresponding base area (e.g., footprint). Using the base area of the packing target, the robotic system 100 can determine one or more placement locations 430 on the placement platform 308 by dividing the base of the placement platform 308 into one or more perimeters associated with the base area of the packing target. The placement locations 430 can represent locations on the placement platform 308 where one or more package objects can be placed and / or stacked. The robotic system 100 can also assign a sequence identifier 450 to each placement location. In some embodiments, the length 412 and / or width 414 of the packing target 410 can be fixed to a particular distance. Thus, the robotic system 100 can divide the base area of the deployment platform into equally sized perimeters that correspond to each deployment location 430. The robotic system 100 can determine the deployment locations 430 by a three-dimensional coordinate center, a set of known distances (e.g., a number of pixels from an edge of the deployment platform 308), a set of perimeter vectors (e.g., coordinate pairs), or some combination thereof.
[0054] In some embodiments, the robotic system 100 can determine one or more sets of placement locations 430 at different height levels above the placement platform 308. The robotic system 100 can be configured to determine placement locations 430 that do not overlap the perimeter of another placement location 430 on the same lateral height level.
[0055] The robotic system 100 can be configured to determine a lateral distance between the placement location 430 and the robotic unit 440. In some embodiments, the robotic system 100 can calculate a distance from a reference point (e.g., a center portion) of the placement location 430 to a reference point (e.g., a center portion) of the robotic unit 440 lateral (e.g., in the xy plane) to the center point of the placement location 430. The robotic system 100 can further be configured to arrange or assign sequence identifiers 450 to the placement locations 430 according to an ordered sequence based on the calculated distance, for example, assigning the lowest identifier to the furthest placement locations and higher identifiers to closer placement locations.
[0056] The robotic system 100 can be configured to identify anomalous object properties 402 associated with incoming or accessible objects in real-time. For example, the robotic system 100 can be configured to identify deviations in one or more physical traits of the incoming object (e.g., deformed, bent, misaligned, and / or partially closed, etc.) that prevent stacking of additional objects on top of the incoming object. The robotic system 100 can detect the incoming object using one or more portions (e.g., portions of the top surface of the package, or lateral dimensions) shown in the image data. Following detection, the robotic system 100 can compare one or more physical traits, such as one or more dimensions, center / overlap area, top surface orientation or contour shape, etc., to the master data. In some embodiments, the robotic system 100 can include a corresponding analysis process associated with the predetermined one or more physical traits and known deviations. In some embodiments, the robotic system 100 can adjust the stack height limit 530 based on the identified anomalous object properties of the incoming object.
[0057] Placement rules 5A-5E are diagrams illustrating implementations of placement rules in accordance with one or more embodiments of the present technology. FIGS. 5A-5E show various stacking scenarios corresponding to various placement rules. The robotic system 100 may use the placement rules to derive placement locations for objects within a specified placement platform 308. For example, the robotic system 100 may discard or disqualify potential placement locations 430 that fail to satisfy one or more placement rules.
[0058] Some examples of placement rules can be for placing objects on top of each other, such as for stacking / placing one or more layers of packages on top of one or more other layers(s) of packages. The robotic system 100 can use the placement rules to improve / ensure the stability of the stacked objects and prevent any objects from slipping and / or tilting during the movement of the placement platform 308. Additionally, the robotic system 100 can use the placement rules to increase the overall number of packed items while reducing the chance of collisions during placement of the items, etc. FIG. 5A shows a final state after placing a first item and an initial state for placing a second item. For illustrative purposes, FIG. 5B, FIG. 5D, and FIG. 5F show multiple scenarios of a top package directly above and supported by (e.g., in direct contact with) one or more supporting packages. FIG. 5B-FIG. 5D show multiple packing scenarios for placing a second item from the initial state shown in FIG. 5A according to different packing dimensions. Figure 5E shows an alternative stacking possibility for the first three items that reduces the difference in height in the placement position. Figure 5F shows a stacking possibility that deviates from the pattern shown in Figures 5B-5E.
[0059] The robotic system 100 can be configured to determine a target placement location for the target package 410. The robotic system 100 can use the current stack height 510 of the placement location 430 to derive the target placement location. In some embodiments, the robotic system 100 can determine the current stack height 510 of the packages stacked on the placement location 430 in real time. The robotic system 100 can use the imaging device 222 to analyze depth measurements (e.g., point cloud data) between the top surface of the stacked packages and the placement platform 308. In some embodiments, the robotic system 100 can access height information recorded for each package stacked on the placement location 430 from the master data 252. Thus, the robotic system 100 can determine the current stack height 510 of the placement location 430 by summing the height information recorded for each stacked package.
[0060] When determining an appropriate placement location for the target package 410, the robotic system 100 may determine a stack height combination for the placement location 430 as the sum between the current stack height 510 of the placement location 430 and the height 416 of the target package 410. In other words, the robotic system 100 may determine the stack height combination as the height that would be obtained if the target package 410 were placed in the corresponding placement location (e.g., stacked on top of a package previously placed in the corresponding location).
[0061] The robotic system 100 can use the placement rules to derive target placement locations 430 for the target packages 410. The placement rules can include rules, requirements, or combinations thereof to control or qualify the current stacking height 510 between the placement locations 430. For example, the placement rules can be based on height requirements, sequence requirements, or combinations thereof.
[0062] The height requirement may include a maximum stack height limit 530 (e.g., a percentage of a dimension of the placement platform or a static distance) of the current stack height 510 of the placement location 430. In some embodiments, the height requirement may be a requirement that controls the relative height between adjacent stacks. In other words, the height requirement may require that the current stack height 510 of the placement location 430 is within a predetermined range from the current stack heights 510 of other placement locations.
[0063] The sequence requirement may require that the stack heights follow a predefined sequence or order of placement locations. For example, the sequence requirement may require a stack height of a first placement location to be higher than a stack height of a second placement location if the identifier of the first placement location is earlier in the sequence than, or lower than, the identifier of the second placement location. In some embodiments, the sequence requirement may require a relationship h if i>j. i ≦h j where h i and h j where x represents the current stack height of the first and second placement locations, and i and j represent the sequence identifiers 450 of the first and second placement locations, respectively. As mentioned above, the placement locations can be sequenced or ordered according to the distance between the corresponding placement location and the robot unit 440.
[0064] In some embodiments, the robotic system 100 can derive the target placement location 430 of the package 410 using the stack height limit 530. The stack height limit 530 can be a predetermined maximum limiting the current stack height 510 of the placement location 430. In some embodiments, the robotic system 100 can deviate from the placement rule and follow the exception rule. For example, the robotic system 100 can stack the target package 410 at a first placement location closer to the robot unit than the second placement location 430, and when the total height of the second placement location exceeds the stack height limit, the total height of the first placement location is greater than the current stack height of the second placement location. The robotic system 100 can determine the stack height limit 530 according to user input (e.g., customer-specified requirements), carrier dimensions, robot characteristics (e.g., the maximum accessible height of the robot unit 440 for one or more placement locations), etc.
[0065] In determining a target placement location 430 for the target package 410, the robotic system 100 can determine whether the target package 410 can be placed at the selected placement location based on the current stack height and sequence identifier 450 corresponding to the placement location 430. For example, the robotic system 100 can determine a stack height combination for the selected placement location and compare it to the current stack heights of the placement locations 430 available on the placement platform 308. Additionally, the robotic system 100 can determine a sequence identifier for the selected placement location and compare it to the sequence identifier 450 of the placement location 430. Using the stack height combination, the current stack height, and the sequence identifier 450, the robotic system 100 can iteratively compare the stack height combination and sequence identifier of the selected placement location to the current stack height and sequence identifier 450 of the placement location 430 to determine whether the selected placement location complies with at least one of the placement rules and exception rules. The robotic system 100 can determine that the target package 410 can be placed in the selected placement location when the selected placement location complies with the placement rules, the exception rules, or both. The robotic system 100 can eliminate a placement location when the location fails to satisfy one or more rules.
[0066] In some embodiments, the robotic system 100 may repeatedly compare the selected placement location with placement locations 430 following the order of the sequence identifiers 450 starting from the first placement location closest to the robotic unit (e.g., the sequence identifier with the highest value) and ending with the last placement location farthest from the robotic unit. The robotic system 100 may select the valid first selected placement location as the target placement location 430 for the target package 410. In other embodiments, the robotic system 100 may repeatedly select a previously selected target placement location for the target placement location of the target package 410 until either a placement rule or an exception rule is violated. When repeatedly selecting a previously selected target placement location, the robotic system 100 may skip the comparison between the selected placement location and the placement location 430.
[0067] As an illustrative example, FIG. 5A shows one package being placed on a pallet with three placement locations. Prior to placing the package, the heights at the three placement locations had zero. Thus, the robotic system 100 may select the furthest placement location (e.g., identifier 1, where the robotic unit 440 is located on the left side of the pallet) to place the package. After placing the object, the current height 501 at identifier 1 may correspond to the height (e.g., h1) of the placed package (e.g., package 1).
[0068] FIG. 5B illustrates the placement of a second package (e.g., package 2a) having a height 502 equal to or greater than the first package height 501. When considering placement locations for the second package, the robotic system 100 can calculate the stack height combination for placement location 1 (e.g., h1+h2a) and placement location 2 (e.g., h2a). The robotic system 100 can use the resulting stack height combination of the candidate locations to compare to the rule. Because h2a≧h1, the resulting height combination for placing the second package at location 2 violates the placement rule by being greater than the current height at location 1. Alternatively, the height combination at location 1 would maintain the more distant stack height higher than the closer locations, and the height combination would remain below the maximum stack height, adhering to the placement rule. Additionally, the robotic system 100 can ignore the exception rule since the height combinations for both candidate locations remain below the maximum stack height.
[0069] 5C and 5D show different placement possibilities of a different second package (e.g., package 2b) having a height 503 less than the first package height 501. FIG. 5C can show the second package 2b placed at position 2, and FIG. 5D can show the second package 2b placed at position 1 and stacked on top of the first package 1. The robotic system 100 can calculate the height combination of both candidate placements and evaluate according to the rule. Because the height 2b of the second package 2b is less than the height h1 of the first package, subtracting the height 2b from the height 1 can give a positive number 504. Thus, the robotic system 100 can determine that placing the second package 2b at the second position satisfies the placement rule. Additionally, the robotic system 100 can determine that placing the second package 2b at the first position also satisfies the placement rule and can maintain the height below a maximum threshold. When the robotic system 100 identifies multiple valid placement possibilities, the robotic system 100 can use one or more predefined processes to select between the valid possible positions. For example, the robotic system 100 can have predefined rules to select more distant positions first, increase the highest stack height, or spread out the placement, reducing the difference in height between stacks. Figure 5E shows the transition from Figure 5C in placing the third package 3a according to a preference to reduce the difference in height at the placement positions.
[0070] In other embodiments, the robotic system 100 can generate the packing plan using a separate subsystem (e.g., planner). When the total contents of a pallet are known, such as according to an order or shipping manifest, the robotic system 100 can calculate the packing plan (e.g., the designated positions for each package within the contents) prior to package placement. In those situations, the robotic system 100 can consider different placement scenarios during the planning phase. During the placement phase, the robotic system 100 can follow a stacking plan instead of evaluating different placement possibilities. Additionally, during the placement phase, the robotic system 100 can use various rules to account for out-of-sequence package arrivals at the starting location or for packages with multiple placement positions within a stack. Additionally or alternatively, the robotic system 100 can use placement rules to generate a stacking sequence during the pack planning phase.
[0071] FIG. 5F illustrates an exception rule. FIG. 5F represents a stacking sequence following FIG. 5B. For example, after stacking a second package (identifier 2a) at position 1, the robotic system 100 may place a third package 3 at position 2 because stacking a third package (identifier 3) at position 1 would produce a height combination that exceeds the maximum stacking height. Additionally, the robotic system 100 may eliminate position 3 as a possibility for the third package because the corresponding height combination exceeds the current height of position 2, violating the placement rule. Thereafter, when evaluating a placement location for a fourth package (identifier 4), the robotic system 100 may determine that the remaining height 506 at position 1 (e.g., the difference between the current height and the stacking height limit 530) is less than the minimum dimension of the known or available object. In response, the robotic system 100 may effectively eliminate position 1 by indicating that the position is filled. Thus, the robotic system 100 may invoke the exception rule and select position 2 where the height combination at position 2 exceeds the current height of position 1. Otherwise, such as if the remaining height at location 1 is greater than one or more dimensions of the possible or expected package, the robotic system 100 may select location 3 as the placement location for package 4. In other embodiments, the robotic system 100 may invoke an exception rule if the remaining height 506 is within a height threshold.
[0072] Example of a deployment sequence 6A-6B are diagrams of an exemplary first placement sequence and an exemplary second placement sequence in accordance with one or more embodiments of the present technology. The robotic system 100 can use placement rules and / or exception rules to derive a first placement sequence 610 and a second placement sequence 620 to place a set of objects on derived placement locations 601-603 of the placement platform 308 (e.g., a pallet) of FIG. 3. The first placement location 601 can be located furthest from the robot unit, and the third placement location 603 can be located closest to the robot unit. The first placement sequence 610 and the second placement sequence 620 correspond to a side view depicting the vertical occupancy of the objects placed on the placement platform 308.
[0073] In the exemplary first placement sequence 610 shown in FIG. 6A, a first set of target objects 611-617 are designated to be placed on the placement platform 308 in placement locations 601-603. Thus, the robotic system can derive the placement sequence 610 using placement rules. The robotic system 100 can begin the placement sequence 610 by placing a first target object 611 in the first placement location 601, which is furthest from the robot unit, according to the placement rules. Thereafter, a second target object 612 can be placed in the first placement location 601 directly above the first target object 611. In other embodiments, the robotic system 100 can place the second target object 612 in the second placement location 602 because the vertical height of the second target object 612 is lower than the vertical height of the first target object 611. When the robotic system 100 identifies multiple valid placement possibilities, the robotic system 100 can use one or more predefined processes to select between the valid possible locations. For example, sequence 610 shows the robotic system 100 following a predetermined rule for selecting the more distant positions first, increasing the highest stack height.
[0074] The third target object 613 can be placed on the second placement location 602 because the combination of the vertical heights of the three first target objects exceeds the stack height limit 630. The fourth target object 614 can be placed on the second placement location 602 because the combination of the vertical heights of the third target object 613 and the fourth target object 614 is within the stack height limit 630. In other embodiments, the robotic system 100 can place the fourth object on the third placement location 603 because the height of the fourth target object is lower than the stack height on the placement location 602. As with the placement of the second target object 612, the robotic system 100 can follow a predefined rule for selecting a more distant position first, increasing the highest stack height. In other embodiments, the robotic system 100 can use one or more alternative predefined processes for selecting between multiple possible positions available for the fourth placement object.
[0075] The fifth target object 615 may be placed in the third placement location 603 because if the fifth target object 615 were placed in either the first placement location 601 or the second placement location 602, the placement rule would be violated by the stack height combination exceeding the stack height limit 630. Similarly, the sixth target object 616 and the seventh target object 617 may be placed in the third placement location 603 because their object heights are greater than the height difference between the stack height limit 630 and the current stack heights at placement locations 602 and 603.
[0076] In the exemplary second placement sequence 620 shown in FIG. 6B, a second set of target objects 621-627 are designated to be placed in placement locations 601-603 on the placement platform 308. Thus, the robotic system can derive the placement sequence 620 using placement rules and exception rules. The robotic system 100 starts the placement sequence 620 by placing a first target object 621 in the first placement location 601, which is the furthest from the robot unit. Then, the second target object 622 is also placed in the first placement location 601 directly above the first target object 621. In another embodiment, the robotic system 100 can place the second target object 622 in the second placement location 602 because the vertical height of the second target object 622 is equal to the vertical height of the first target object 621.
[0077] The third target object 623 needs to be placed on the second placement location 602 because the vertical height combination of the three first target objects exceeds the stack height limit 630. The fourth target object 624 is placed on top of the second placement location 602. In another embodiment, the robotic system 100 can place the fourth target object 624 in the third placement location 603 because the vertical heights of the third target object 623 and the fourth target object 624 are equal. The fifth target object 625 is placed in the second placement location 602 above the fourth target object 624. Thus, the stack height combination of the second placement location 602 exceeds the stack height combination of the first placement location 601, violating the placement rule. Instead, the robotic system 100 can use the exception rule to allow placement of the fifth object 625 at the second placement location 602. The sixth target object 616 and the seventh target object 617 are then placed in the third placement location 603.
[0078] System operation example 7 is a flow diagram of an example method 700 of operating the robotic system of FIG. 1 in accordance with one or more embodiments of the present technology. The method 700 can be for deriving a target placement location 430 for placing a target package 410 on a placement platform 308. The method 700 can be performed by one or more of the processors 202 of FIG. 2 based on executing instructions stored in one or more of the storage devices 204 of FIG. 2. The processor 202 can control the robotic arm 302 of FIG. 3A and / or the end effector 304 of FIG. 3A, such as in transporting a target object 112 of FIG. 1 from a start location 114 of FIG. 1 to a pallet at a task location 116 of FIG. 1. For example, the processor 202 can send commands, settings, and / or other communications that effectively control the robotic unit 440 to manipulate components / objects and place them at corresponding placement locations on the pallet.
[0079] In block 702, the robotic system 100 may identify one or more objects (e.g., target package 410 in FIG. 4A ) designated for placement on a pallet at the task location 116. For example, the robotic system 100 may identify objects that are available for packing, objects that are in an inbound shipment, objects arriving at a designated location, objects that are located at a source, objects that are designated for placement, and / or objects that are listed in an order / request / manifest.
[0080] Also, in block 702, the robotic system 100 may identify pallets available to receive and stack the identified object. For example, the robotic system 100 may identify placement platforms 308 available to receive and stack the identified object. The robotic system 100 may also determine characteristics / traits (e.g., category, dimensions, identifier, etc.) of the identified placement platforms 308. The robotic system 100 may also determine a base of the placement platform 308 for placing and / or stacking the identified object. The robotic system 100 may interface with another system (e.g., a delivery robot system), access information from the master data 252 of FIG. 2, and / or obtain real-time information from the placement platforms 308 (e.g., via sensors at predetermined locations) to identify the placement platforms 308 and / or their characteristics.
[0081] In block 704, the robotic system 100 may obtain (e.g., by generating in real-time and / or accessing from the master data 252 of FIG. 2) physical properties (e.g., dimensions, shapes, anomalies) of the identified objects. For example, the robotic system 100 may obtain physical properties representing the length, width, and / or height of each of the identified objects, such as the target package 410 of FIG. 4A. The robotic system 100 may also group the identified objects into one or more sets of identified objects based on similar dimensions (e.g., length and / or width). The robotic system 100 may also obtain information regarding abnormal physical features of each of the identified objects. In some embodiments, the robotic system 100 may determine the physical properties of the identified objects in real-time (e.g., after receiving an order and / or before initiating a placement operation, or offline) based on image data and / or depth measurements (e.g., cloud points) received from an image sensor. In some embodiments, the robotic system 100 may evaluate whether the abnormal object properties prevent additional stacking on top of the target package 410. The robotic system 100 can then adjust the stack height limit 530 based on this assessment.
[0082] In block 706, the robotic system 100 can determine the stacking orientation and corresponding lateral base area (e.g., footprint) of the intended packing object. For example, the robotic system 100 can determine the stacking orientation of the target package 410 selected from the identified objects. Using the recorded physical dimensions (e.g., length and / or width) of the target package 410, the robotic system 100 can form the lateral base area of the target package 410 (e.g., by forming an edge perimeter around the base surface of the intended packing object and / or by rotating a shape template included in the master data 252). In some embodiments, the robotic system 100 can fix the lateral dimensions (e.g., length and width) of the intended packing object to a constant value. Thus, the robotic system 100 can assign a fixed lateral base area for each intended packing object after calculating the lateral base area once.
[0083] In block 708, the robotic system 100 can determine a placement location 430 for stacking the intended packing object on the placement platform 308. For example, the robotic system 100 can use the lateral base area to divide the base surface of the placement platform 308 into one or more separate placement areas (e.g., boundaries of areas on the base surface of the placement platform 308 for stacking packages) and define perimeter boundaries of the separate placement areas. For each separate placement area, the robotic system 100 can define a new placement location and determine characteristics / traits of the new placement location 430 (e.g., spatial location, dimensions, height relative to the base surface of the placement platform 308). In other embodiments, the robotic system 100 can access one or more predefined placement locations for an order, pallet, set of items, or combinations thereof corresponding to the current task.
[0084] In determining placement locations for target packing objects, the robotic system 100 can determine a candidate sequence (e.g., stacking priority order) of placement locations 430 by assigning a sequence identifier (e.g., an identification number) to each placement location 430 based on distance measurements (e.g., location and / or proximity to the object). For example, the robotic system 100 can identify a lateral (e.g., xy plane) reference for calculating distance measurements for the placement locations 430. In some embodiments, the lateral reference can be the position of the robot unit 440 (e.g., base of the robot arm) lateral to the placement platform 308 and / or the base plane of the placement locations 430.
[0085] At block 722, the robotic system 100 can calculate the distance of the placement locations 430 from the robotic unit. For example, the robotic system 100 can determine the distance between each placement location 430 (e.g., the coordinates of the center of the placement area perimeter) and the robotic unit 440 lateral to the placement location 430 and / or the placement platform 308 (e.g., the unit center coordinates). In some embodiments, the robotic system 100 can use a predefined configuration of the robotic unit (e.g., pre-recorded position data) when calculating the separation distance between the robotic unit and the placement locations 430.
[0086] In block 724, the robotic system 100 may generate sequence identifiers 450 corresponding to the placement locations 430 based on the distance of the placement locations 430 from the robotic unit. The sequence identifiers 450 (e.g., order of identification numbers) represent the order of the placement locations 430. For example, the robotic system may assign the sequence identifiers 450 in ascending order based on the distance of the placement locations 430 in descending order of magnitude. Thus, the first / lowest sequence identifier is assigned to the placement locations 430 furthest from the robotic unit and the last / highest sequence identifier is assigned to the placement locations 430 closest to the robotic unit.
[0087] In block 710, the robotic system 100 may determine a target placement location 430 for the target package 410 selected from the intended packing targets. For example, the robotic system 100 may assign the target package 410 to a sequence identifier corresponding to the target placement location 430. The robotic system 100 may select the target placement location 430 using characteristic information / traits (e.g., location, size, shape) of the placement location 430 on the placement platform 308. The robotic system 100 may use the characteristic information to determine a current stack height and a stack height combination for the placement location 430. Using the current stack height and the stack height combination, the robotic system 100 may determine candidate locations including placement locations 430 that follow either the placement rule or the exception rule. The robotic system 100 may select the best candidate location from the candidate locations as the target placement location 430 by assigning the sequence identifier of the best candidate location to the target package 410.
[0088] At block 726, the robotic system 100 may calculate the current stack height (e.g., the height of the topmost placed package) of the placement location 430. For example, the robotic system 100 may calculate the current stack height of the placement location 430 by measuring the vertical distance between the placement platform 308 and the top surface of the object placed at the placement location 430. The robotic system 100 may be configured to analyze depth measurements (e.g., cloud point data) from the image sensor in real time to determine the vertical distance between the base surface of the placement platform 308 and the top surface of the placed object. In other embodiments, the robotic system 100 may determine the current stack height by obtaining recorded vertical distance measurements from the master data 252. Additionally or alternatively, the robotic system 100 may calculate the current stack height using characteristics / traits (e.g., height measurements) of the stack package set identified at the placement location 430.
[0089] In block 732, the robotic system 100 may identify the stacked package set (e.g., packages previously placed by the robotic unit) at the placement location 430 to determine the physical dimensions of the individual packages in the stacked package set. For example, the robotic system 100 may use a recording log (e.g., a motion plan sequence) of the placement location 430 from a tracked history / log to identify the individual packages. The robotic system 100 may obtain the physical properties (e.g., height) of each of the individual packages from the master data 252. Alternatively, in the absence of a recording log, the robotic system 100 may use depth measurements (e.g., cloud points) from an image sensor to determine the height of each of the individual packages in real time. The robotic system 100 may use the depth measurements to determine the height as the distance between the top and bottom surfaces of each of the individual packages. The robotic system 100 may also use the robotic arm 302 to distinguish the top and bottom surfaces of each of the individual packages and replace the individual packages in the stacked package set.
[0090] In block 734, the robotic system 100 may calculate a total height (e.g., a current stack height of the stacked packages at the placement location 430) based on the heights of the individual packages. For example, the robotic system 100 may calculate a total height of the placement location 430 by combining the heights of the individual packages of the stacked packages. The total height of the placement location 430 may represent the vertical distance from the placement platform 308 to the top surface of the stacked packages. The total height of the placement location 430 also represents the current stack height of the placement location 430.
[0091] In block 728, the robotic system can use the current stack height and sequence identifier 450 of the placement location 430 to select the target placement location 430. For example, the robotic system 100 can use the current stack height and sequence identifier 450 to identify candidate locations that can be selected as the target placement location 430. The robotic system 100 can calculate a combination of stack heights of the candidate locations that represents placing the target package 410 on the placement platform 308 and / or a stacked package at the candidate locations. Using the combination of stack heights of the candidate locations and the current stack heights of the remaining placement locations, the robotic system 100 can determine the candidate location with the highest cumulative stack height.
[0092] In block 736, the robotic system 100 may identify candidate locations, including placement locations 430, that can be selected as target placement locations 430. For example, the robotic system 100 may identify candidate locations where, when the target object is placed, each candidate location maintains a corresponding resulting height within the stack height limit. Additionally or alternatively, the height of the resulting candidate location maintains the current stack height of the placement location near the robotic unit such that it is less than or equal to the current stack height of the placement location further from the robotic unit. In other embodiments, the robotic system 100 may identify candidate locations that follow either the placement rules or the exception rules.
[0093] In block 738, the robotic system 100 may calculate a stack height combination for the candidate location. For example, the robotic system 100 may calculate the stack height combination for the candidate location by adding the height of the target package 410 to the current stack height of the candidate location.
[0094] In block 740, the robotic system 100 can determine the target placement location 430 using the stack height combination of the candidate locations and the current stack heights of the remaining placement locations. For example, the robotic system 100 can determine the target placement location 430 by calculating a cumulative stack height for each candidate location by adding the corresponding stack height combination to the current stack heights of the remaining placement locations. The robotic system 100 can select the candidate location with the highest cumulative stack height as the target placement location 430 for the target package 410. In other embodiments, the robotic system 100 can determine the target placement location 430 by comparing the stack height combinations of the candidate locations and selecting the candidate location with the highest stack height combination. The robotic system 100 can assign a sequence identifier of the target placement location 430 to the target package 410.
[0095] In block 712, the robotic system 100 can derive and execute a stacking motion plan for the target package 410 using the target placement location 430. For example, the robotic system 100 can obtain the location information of the target placement location 430 using a sequence identifier of the target placement location 430 assigned to the target package 410. In some embodiments, the robotic system can derive a stacking motion plan corresponding to the target placement location using the location information. Each stacking motion plan can correspond to an object and can include a stacking motion path or a corresponding set of commands / settings for the object and / or the robotic unit 440 (e.g., robot arm and / or end effector). The stacking motion plan can correspond to the operation of the robotic unit 440 to approach the object at its start location, grasp the object by the end effector, lift and transport the object to its placement location, and release / place the object at the target placement location. In some embodiments, the robotic system 100 can derive a path for the target object in reverse (e.g., from the placement location to the start location) iteratively using the incremental changes in the candidate locations. The robotic system 100 can maintain a sequence of positions that avoids collisions and minimizes distance traveled, operations, resources, and / or other consumption parameters for deriving a path. The robotic system 100 can use the resulting path to derive a motion plan.
[0096] The robotic system 100 can execute the stacked motion plan, such as by communicating one or more of the stacked motion plan and / or corresponding commands / settings to the target robotic unit 440. The robotic system can further execute the motion plan by executing the commands / settings on the target robotic unit 440. Thus, the robotic system can operate the robotic unit 440 to transport the object from the start position to the respective target placement position according to the stacked motion plan.
[0097] The robotic system 100 may repeat the above process each time a new object is received or arrives at the start location. For example, one or more sensors (e.g., intersection sensors, weight sensors, etc.) may indicate the presence of a new object on one of the inbound conveyors to the task station. The robotic system 100 may acquire image data corresponding to the new object, detect or identify the new object, and then determine a target placement location for the new object. Once the placement location is determined, the robotic system 100 may derive and execute a corresponding motion plan to transport the object to the target placement location. The robotic system 100 may repeat the process until the intended set of objects is packed and / or until all placement locations reach the maximum allowable height.
[0098] conclusion The above detailed description of examples of the disclosed technology is not intended to be exhaustive or to limit the disclosed technology to the precise form disclosed above. Although specific examples of the disclosed technology are described above for illustrative purposes, those skilled in the art will recognize that various equivalent modifications are possible within the scope of the disclosed technology. For example, while processes or blocks are presented in a given order, alternative embodiments may perform routines having steps or use 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 variety of ways. Also, while processes or blocks are sometimes shown to be performed in series, these processes or blocks may instead be performed or implemented in parallel, or may be performed at different times. Furthermore, any specific numbers described herein are merely examples, and alternative embodiments may use different values or ranges.
[0099] These and other modifications can be made to the disclosed technology in light of the above detailed description. Although the detailed description describes certain embodiments of the disclosed technology and the best mode contemplated, the disclosed technology can be implemented in many ways, no matter how detailed the above description is in the text. The details of the system, while encompassed by the technology disclosed herein, may vary considerably in a particular implementation. As mentioned above, a particular term used when describing a particular feature or aspect of the disclosed technology should not be construed as meaning that the term has been redefined herein to be limited to the particular characteristic, feature, or aspect of the disclosed technology with which the term is associated. Thus, the present 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 particular embodiments disclosed herein, unless such terms are expressly defined in the detailed description section above.
[0100] Although certain aspects of the invention are presented in certain claim forms below, Applicants contemplate various aspects of the invention in any number of claim forms, and accordingly, Applicants reserve the right to pursue additional claims after the filing of this application in order to pursue such additional claim forms in either this application or any continuing application.
Claims
1. 1. A method for operating a robotic system, comprising: identifying a package set representing packages available for deployment on the platform; obtaining a set of object properties for one or more packages in the package set, the object properties representing a physical size, shape, or a combination thereof, of the one or more packages in the package set; determining a location on the platform using the object property set, the location representing a stacking location of the package set or a portion thereof; calculating a set of distances of the placement locations, the distances being between a corresponding one of the placement locations and a robotic unit configured to transport the package set to the platform; generating a sequence identifier for each of the placement locations based on the corresponding distances; determining a target placement location for a target package from the placement locations; executing a motion plan for placing the target package at the target placement location on the platform; Including, The target placement position is: calculating a current stack height of the placement location; and selecting the target placement location using the sequence identifier and the current set of stack heights, the resulting height of the selected target placement location being within a stack height limit and maintaining stack heights closer to the robotic unit less than or equal to stack heights further from the robotic unit; is determined by Calculating the current stack height comprises: identifying a stacked package set currently located in each of said locations; and calculating a total height of each of said placement locations; Including, the total height represents a vertical distance from the platform to a top surface of a package located at the corresponding one of the placement locations; Determining the target placement location includes: using the sequence identifier to identify candidate locations that, when placed into the target package, (1) maintain the corresponding resulting height within the stack height limit, and (2) maintain the closer stack height less than or equal to the farther stack height; calculating, for each candidate location, a cumulative stack height by adding the corresponding resulting height to a remaining stack height; determining one of the candidate locations having a highest cumulative stack height as the target placement location for the target package; A method comprising:
2. the generated sequence identifier being higher for the placement locations closer to the robot unit and lower for the placement locations farther from the robot unit; The target placement position is h when i>j. i ≦h j The height of the where i and j represent sequence identifiers, and h i and h j represents the height at the corresponding placement position, The method of claim 1 , wherein the height-based placement rules are configured to maintain the height of the closer stack less than or equal to the height of the farther stack.
3. the target placement location is determined based on an exception to the height-based placement rule; a first candidate location has a stack height combination that is greater than the stack height limit; a second candidate location has a stack height combination that is lower than the stack height limit and higher than the current stack height of the first candidate location; a first sequence identifier corresponding to the first candidate location precedes a second sequence identifier corresponding to the second candidate location; The method of claim 2 , wherein the second candidate location is selected as the target placement location.
4. 4. The method of claim 3, wherein the target placement location is determined based on the exception to the height-based placement rule when a height difference between the current stack height of the second candidate location and the stack height limit is within a height threshold.
5. determining the placement locations includes obtaining a packing plan describing pre-planned locations of the package sets on the platform; The method of claim 2 , wherein the target placement location is determined based on the height-based placement rule when the target package is accepted out of sequence.
6. identifying a plurality of objects available for placement, the plurality of objects including the target package; determining a placement location corresponding to the available object other than the target package; selecting the target package for delivery when the target location is farther than the location locations corresponding to other available objects; The method of claim 2 , further comprising:
7. calculating a remaining height at each of said placement locations; the remaining height corresponds to a difference between the current stack height at the corresponding one of the placement locations and the stack height limit; The method of claim 6 , wherein the target placement location is determined based on an exception to the height-based placement rule when the remaining height is less than the physical dimension of the package set.
8. Determining the target placement location of the target package includes: identifying an anomalous object property associated with the target package; adjusting the stack height limit using the identified anomalous object properties; and Including, the anomalous object property corresponds to a physical deviation of the target package, including deformation, bending, misalignment, and / or partial closure; The method of claim 1 , wherein the anomalous object property prevents additional stacking above the target package.
9. The method of claim 1 , wherein a subset of properties in the object property set includes one or more lateral dimensions that remain fixed across the one or more packages in the package set.
10. A tangible, non-transitory computer-readable medium having stored thereon instructions that, when executed by a processor, cause the processor to perform a method, comprising: The method comprises: identifying a package set representing packages available for deployment on the platform; obtaining a set of object properties for one or more packages in the package set, the object properties representing a physical size, shape, or a combination thereof, of the one or more packages in the package set; determining a location on the platform using the object property set, the location representing a stacking location of the package set or a portion thereof; calculating a set of distances of the placement locations, the distances being between a corresponding one of the placement locations and a robotic unit configured to transport the package set to the platform; generating a sequence identifier for each of the placement locations based on the corresponding distances; determining a target placement location for a target package from the placement locations; executing a motion plan for placing the target package at the target placement location on the platform; Including, The target placement position is: calculating a current stack height of the placement location; and selecting the target placement location using the sequence identifier and the current set of stack heights, the resulting height of the selected target placement location being within a stack height limit and maintaining stack heights closer to the robotic unit less than or equal to stack heights further from the robotic unit; is determined by Calculating the current stack height comprises: identifying a stacked package set currently located in each of said locations; and calculating a total height of each of said placement locations; Including, the total height represents a vertical distance from the platform to a top surface of a package located at the corresponding one of the placement locations; Determining the target placement location includes: using the sequence identifier to identify candidate locations that, when placed into the target package, (1) maintain the corresponding resulting height within the stack height limit, and (2) maintain the closer stack height less than or equal to the farther stack height; calculating, for each candidate location, a cumulative stack height by adding the corresponding resulting height to a remaining stack height; determining one of the candidate locations having a highest cumulative stack height as the target placement location for the target package; 4. A tangible, non-transitory computer readable medium, comprising:
11. the generated sequence identifier being higher for the placement locations closer to the robot unit and lower for the placement locations farther from the robot unit; The target placement position is h when i>j. i ≦h j The height of the where i and j represent sequence identifiers, and h i and h j represents the height at the corresponding placement position, 11. The tangible, non-transitory computer-readable medium of claim 10, wherein the height-based placement rules are configured to maintain a height of the closer stack less than or equal to a height of the farther stack.
12. the target placement location is determined based on an exception to the height-based placement rule; a first candidate location has a stack height combination that is greater than the stack height limit; a second candidate location has a stack height combination that is lower than the stack height limit and higher than the current stack height of the first candidate location; a first sequence identifier corresponding to the first candidate location precedes a second sequence identifier corresponding to the second candidate location; The tangible, non-transitory computer readable medium of claim 11 , wherein the second candidate location is selected as the target placement location.
13. determining the placement locations includes obtaining a packing plan describing pre-planned locations of the package sets on the platform; 12. The tangible, non-transitory computer-readable medium of claim 11, wherein the target placement location is determined based on the height-based placement rule when the target package is received out of sequence.
14. The method comprises: identifying a plurality of objects available for placement, the plurality of objects including the target package; determining a placement location corresponding to the available object other than the target package; selecting the target package for delivery when the target location is farther than the location locations corresponding to other available objects; 12. The tangible, non-transitory computer readable medium of claim 11, further comprising:
15. 1. A robotic system comprising at least one processor and at least one memory device coupled to the at least one processor, The at least one memory has instructions stored thereon that, when executed by the processor, cause the processor to: identifying a package set representing packages available for deployment; obtaining an object property set for one or more packages in the set of packages; determining a location on a platform using the set of object properties, the location representing a stacking location of the set of packages or a portion thereof; calculating a set of distances of the placement locations, the distances being between a corresponding one of the placement locations and a robotic unit configured to transport the package set to the platform; generating a sequence identifier for each of the placement locations based on the corresponding distances; determining a target placement position for a target package from the placement positions; executing a motion plan for placing the target package at the target placement location on the platform; Let them do so, The target placement position is: calculating a current stack height of the placement location; and selecting the target placement location using the sequence identifier and the current set of stack heights, the resulting height of the selected target placement location being within a stack height limit and maintaining stack heights closer to the robotic unit less than or equal to stack heights further from the robotic unit; is determined by Calculating the current stack height comprises: identifying a stacked package set currently located in each of said locations; and calculating a total height of each of said placement locations; Including, the total height represents a vertical distance from the platform to a top surface of a package located at the corresponding one of the placement locations; Determining the target placement location includes: using the sequence identifier to identify candidate locations that, when placed into the target package, (1) maintain the corresponding resulting height within the stack height limit, and (2) maintain the closer stack height less than or equal to the farther stack height; calculating, for each candidate location, a cumulative stack height by adding the corresponding resulting height to a remaining stack height; determining one of the candidate locations having a highest cumulative stack height as the target placement location for the target package; A robot system comprising:
16. the generated sequence identifier being higher for the placement locations closer to the robot unit and lower for the placement locations farther from the robot unit; The target placement position is h when i>j. i ≦h j The height of the where i and j represent sequence identifiers, and h i and h j represents the height at the corresponding placement position, The robotic system of claim 15 , wherein the height-based placement rule is configured to maintain a height of the closer stack less than or equal to a height of the farther stack.
17. the target placement location is determined based on an exception to the height-based placement rule; a first candidate location has a stack height combination that is greater than the stack height limit; a second candidate location has a stack height combination that is lower than the stack height limit and higher than the current stack height of the first candidate location; a first sequence identifier corresponding to the first candidate location precedes a second sequence identifier corresponding to the second candidate location; The robotic system of claim 16 , wherein the second candidate location is selected as the target placement location.
18. determining the placement locations includes obtaining a packing plan describing pre-planned locations of the package sets on the platform; The robotic system of claim 16 , wherein the target placement location is determined based on the height based placement rule when the target package is received out of sequence.
19. The at least one memory is executable by the processor. identifying a plurality of objects available for placement, the plurality of objects including the target package; determining a placement location corresponding to the available object other than the target package; selecting the target package for delivery when the target location is farther than the location locations corresponding to other available objects; The robotic system of claim 16 , further comprising the instruction:
Citation Information
Patent Citations
Palletizing method
JP1994064750A
Loading method
JP1994234425A
Control device, control method, and article stacking system
JP2021113110A
Robotic system for processing packages arriving out of sequence
US20200377312A1
Method and apparatus for palletizing packages of random size and weight
US5908283A