Rapid placement pose computation for robotic packing

The method addresses the challenge of optimal robotic bin packing by using image processing and convolution operations to compute globally optimal placement poses, ensuring efficient and stable packing on low-compute platforms, overcoming the limitations of high computational requirements and local minima.

WO2025199699A1PCT designated stage Publication Date: 2025-10-02SIEMENS AG +1

Patent Information

Application Number
PCT/CN2024/083632
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-25
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

Existing robotic bin packing systems face challenges in efficiently and optimally placing unknown objects in containers, particularly in dynamic environments, often requiring high computational power or GPU support, and may result in sub-optimal solutions or collisions due to reliance on local minima.

Method used

A method for rapid real-time computation of optimal placement poses using image processing and convolution operations to construct feature cost maps, allowing for efficient, stable packing on low-compute platforms without prior knowledge of object geometry or sequence, ensuring globally optimal solutions.

Benefits of technology

Enables fast and efficient robotic packing with stable object placement, suitable for high-throughput industrial settings, by computing globally optimal poses using low-compute platforms, reducing computational overhead and minimizing collisions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024083632_02102025_PF_FP_ABST
    Figure CN2024083632_02102025_PF_FP_ABST
Patent Text Reader

Abstract

A method for performing robotic packing of objects in a container includes acquiring a first image of an object grasped by a robotic end effector and a second image of the container. The first image is used to estimate dimensions of the grasped object and compute an object kernel. The second image is used to construct a heightmap indicating multiple placement regions at specific height levels from a container base. For any placement region, the heightmap is used to construct feature maps for a number of features that affect placement feasibility and / or quality. A feature cost map is computed for each feature by convolving the feature map with the object kernel. The feature cost maps are combined to compute a total cost map for that placement region. An optimal placement pose is computed by identifying a minima from the total cost map (s) for one or more of the placement regions.
Need to check novelty before this filing date? Find Prior Art

Description

RAPID PLACEMENT POSE COMPUTATION FOR ROBOTIC PACKINGTECHNICAL FIELD

[0001] The present disclosure relates generally to robotics in industrial automation tasks, and in particular, to systems and methods for fast and efficient computation of optimal placement pose for robotic packing of objects in a container.BACKGROUND

[0002] Autonomous operations, such as robotic grasping and manipulation, in unknown or dynamic environments present various technical challenges. Autonomous operations in dynamic environments may be applied to mass customization (e.g., high-mix, low-volume manufacturing) , on-demand flexible manufacturing processes in smart factories, warehouse automation in smart stores, automated deliveries from distribution centers in smart logistics, and the like. In order to perform autonomous operations, robots might interact with different objects under different situations. Some of the objects might be unknown to a given robot. Bin picking and packing are example operations that robots can perform using artificial intelligence (AI) or computer vision techniques. Bin packing refers to a robot grasping objects that can be disposed in random or arbitrary poses, and placing them into a target container or bin.

[0003] A goal of robotic bin packing is efficient space utilization and stable object placement in the target container. This is especially important in scenarios involving a tight packing of objects. To achieve this goal, a robotic system may need to evaluate all possible positions within the target container and choose the best one. This step can be time consuming and typically requires high computational power or task parallelization through use of a graphics processing unit (GPU) .SUMMARY

[0004] Aspects of this disclosure address and overcome one or more of the described-herein technical challenges by providing methods, systems, and computer program products for rapid real-time computation of optimal placement pose to perform robotic packing of objects that can be executed on low compute platforms.

[0005] A first aspect of the disclosure provides a method for performing robotic packing of objects in a container. The method comprises acquiring a first image of an object grasped by a robotic end effector and a second image of the container. The method comprises, based on the first image, estimating dimensions of the grasped object. The method further comprises, based on the second image, constructing a heightmap indicating a plurality of placement regions, each placement region representing a plane surface defined by the container or any object placed therein at a specific height level from a base of the container. The method further comprises performing, for a given placement region: (i) based on the heightmap, constructing a respective feature map for each feature of a plurality of features that affect placement feasibility and / or quality, (ii) computing a respective feature cost map for each of the features by convolving the respective feature map with an object kernel representing a 2D footprint defined by the dimensions of the grasped object, and (iii) computing a total cost map based on a combination of the feature cost maps. The method further comprises computing an optimal placement pose for executing placement of the grasped object in the container by the end effector by identifying a minima from the total cost map computed respectively for one or more of the plurality of placement regions.

[0006] Further aspects of this disclosure provide autonomous systems and computer program products for implementing the above-described method.

[0007] Additional technical features and benefits may be realized through the techniques of the present disclosure. Embodiments and aspects of the disclosure are described in detail herein and are considered a part of the claimed subject matter. For a better understanding, refer to the detailed description and to the drawings.BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The foregoing and other aspects of the present disclosure are best understood from the following detailed description when read in connection with the accompanying drawings. To easily identify the discussion of any element or act, the most significant digit or digits in a reference number refer to the figure number in which the element or act is first introduced.

[0009] FIG. 1 schematically illustrates an autonomous system configured for performing robotic packing of objects according to one or more embodiments.

[0010] FIG. 2 is a flowchart illustrating a process performed by an autonomous system to execute robotic packing of objects according to one or more embodiments.

[0011] FIG. 3 is a flowchart illustrating a process for determining an optimal placement pose according to one or more embodiments.

[0012] FIG. 4 illustrates computation of placement regions from an image of a packing container.

[0013] FIG. 5 illustrates an example computation of a feature cost map for a collision feature according to disclosed embodiments.

[0014] FIG. 6 illustrates an example computation of a feature cost map for a closeness feature according to disclosed embodiments.

[0015] FIG. 7 illustrates an example computation of a feature cost map for a slope ratio feature according to disclosed embodiments.

[0016] FIG. 8 illustrates an example computation of a feature cost map for a side stability feature according to disclosed embodiments.

[0017] FIG. 9 illustrates an example computation of a feature cost map for a bottom stability feature according to disclosed embodiments.

[0018] FIG. 10 illustrates an example computation of a feature cost map for a height uniformity feature according to disclosed embodiments.DETAILED DESCRIPTION

[0019] Robotic bin packing generally consists of a robot equipped with or communicatively coupled to sensors or cameras, such that the robot can grasp (pick) objects disposed in random poses from a bin or tray using a robotic end effector, and place the objects in a target container. The target container can be a bin, tray, box, bag, tote, pallet or any other equivalent structure. The objects can define three dimensional (3D) rigid or non-rigid, regular or irregular shapes. Furthermore, the objects can be of the same type or mixed types. In various examples, an autonomous system that can  perform robotic bin packing has no prior knowledge of the objects that are being packed. In particular, for example, the autonomous system might have no prior knowledge of the geometry of the objects, the sequence in which the objects are to be packed, or respective grasp points of the objects. Furthermore, in some cases, the state of the target container after placement of each object may be different than expected due to manipulation errors, environmental noise, object deformation, and the like.

[0020] A goal of robotic bin packing as described herein is to make efficient use of the packing space defined by a given target container, while assuring object stability after placement. Furthermore, to ensure a high throughput, it is desirable that each object is placed only once, that is, without any additional adjustment performed by the robot after the object has been already placed. To achieve the above-mentioned goal, the autonomous system may capture an image of the target container, and based on the image, evaluate all the possible positions within the target container to output an optimal placement pose. This step can be time consuming and may require high computational power or task parallelization through GPU.

[0021] Conventionally, to achieve fast cycle time on a lower computational platform, the search space of the placement pose can be reduced by reducing the resolution of the target container image, or by having a higher discretization factor for conversion from camera images to real-world distances, among other approaches. These approaches may lead to a quicker solution, but the solution returned may not be the optimal one. Sub-optimal solutions may be acceptable in certain use cases involving loose packing of objects. However, for tight packing of objects, this could result in poor space utilization and collision of objects. Furthermore, many optimization-based approaches yield local minima depending on the initial sample points, so that the returned solutions are not always the best.

[0022] The methodology proposed in the present disclosure addresses the problem of robotic 3D packing of unknown objects in real-time which can be implemented on industrial computational platforms. A technical feature of the proposed methodology involves achieving efficient, stable packing and fast cycle time particularly suitable for tight packing use cases, without relying necessarily on high computational power or GPU support. A further feature of the proposed methodology is that the computed placement pose is based on a globally optimal solution. A still further feature of the proposed methodology is that the methodology can place each object in the  target container once without subsequent adjustments, and without prior knowledge of input objects, making the methodology especially suitable for unknown, dynamic, high-throughput industrial settings.

[0023] Aspects of the proposed methodology may be embodied as software executable by a processor. In some embodiments, aspects of the disclosed methodology may be suitably integrated into commercial artificial intelligence (AI) -based automation software products, such as SIMATIC Robot Pick AITM developed by Siemens AG, among others.

[0024] Turning now to the drawings, FIG. 1 illustrates an autonomous system 100 configured for performing robotic bin packing according to one or more embodiments. In the following description, unless otherwise specified, the term “system” refers to the autonomous system 100. The system 100 may be implemented in a factory setting. In contrast to conventional automation, autonomy gives each asset on the factory floor the decision-making and self-controlling abilities to act independently in the event of local issues. The system 100 may comprise one or more robots, such as the robot 102, which may be controlled by a computing system 104 to execute one or more industrial tasks within a physical environment such as a shopfloor. Examples of industrial tasks include assembly, transport, or the like.

[0025] The computing system 104 may comprise an industrial PC, or any other computing device, such as a desktop or a laptop, or an embedded system, among others. The computing system 104 can include one or more processors configured to process information and / or control various operations associated with the robot 102. The processor (s) may include a one or more CPUs, GPUs, microprocessors, or any hardware devices suitable for executing instructions stored on a memory comprising a machine-readable medium. In particular, the one or more processors may be configured to execute an application program, such as an engineering tool, for operating the robot 102.

[0026] To realize autonomy of the system 100, in one embodiment, the application program may be designed to operate the robot 102 to perform a task in a skill-based programming environment. In contrast to conventional automation, where an engineer is usually involved in programming an entire task from start to finish, typically utilizing low-level code to generate individual commands, in an autonomous system as described herein, a physical device, such as the robot 102, is  programmed at a higher level of abstraction using skills instead of individual commands. The skills are derived for higher-level abstract behaviors centered on how the physical environment is to be modified by the programmed physical device. Illustrative examples of skills include a skill to grasp or pick up an object, a skill to place an object, a skill to open a door, a skill to detect an object, and so on.

[0027] The application program may generate controller code that defines a task at a high level, for example, using skill functions as described above, which may be communicated to a robot controller 108. From the high-level controller code, the robot controller 108 may generate low-level control signals for one or more motors for controlling the movement of the robot 102, such as angular position of the robot arms, swivel angle of the robot base, and so on, to execute the specified task. In other embodiments, the controller code generated by the application program may be communicated to intermediate control equipment, such as programmable logic controllers (PLC) , which may then generate low-level control commands for the robot 102 to be controlled. Additionally, the application program may be configured to directly integrate sensor data from the physical environment in which the robot 102 operates. To this end, the computing system 104 may comprise a network interface to facilitate transfer of live data between the application program and various sensors, such as cameras 122, 126.

[0028] The robot 102 can include a robotic arm or manipulator 110 and a base 112 configured to support the robotic manipulator 110. The base 112 can include wheels 114 or can otherwise be configured to move within the physical environment 106. The robot 102 can further include an end effector 116 attached to the robotic manipulator 110. The end effector 116 may include a gripper configured to grasp (hold) and pick up an object 118. Examples of end effectors include vacuum-based grippers (suction cups) , antipodal grippers (fingers or claws) , magnetic grippers, among others. The robotic manipulator 110 can be configured to move so as to change the position of the end effector 116, to enable picking and moving objects 118 within the physical environment.

[0029] A robotic bin packing operation may involve picking objects one-by-one from a pick bin or container 120 by the robotic manipulator 110, using the end effector 116, and placing them in a target container 124. The objects 118 may be disposed in random poses within the pick bin 120. The objects 118 can be of assorted types or of the same type. The placement operation may involve placing singulated objects 118 grasped by the end effector 116 in an orderly manner in the target  container 124, to achieve an efficient packing.

[0030] To accomplish this task, the system 100 may include sensors or cameras that enable the robot 102 to perceive the physical environment. As shown, these sensors may include (among others) a first camera 122 for capturing an image of an object 118 grasped by the end effector 116 and a second camera 126 for capturing an image of the target container 124. The cameras 122, 126 may include, for instance, 2D cameras such as depth cameras or RGB-D cameras, or 3D point cloud sensors, among others. The first camera 122 may be placed on a surface so as to face upward and be configured to generate a depth map or a 3D point cloud of a given object 118 while the object 118 is grasped by the end effector 116. Preferably, the first camera 122 may have a viewing direction substantially normal to a bottom surface 118a of the grasped object 118 that faces away from the end effector 116. The second camera 126 may be suitably mounted above the target container 124 and be configured to generate a depth map or a 3D point cloud of the target container 124 including any objects 118 placed therein, that indicates a current state of the target container 124. Preferably, the second camera 126 may have a viewing direction substantially normal to a base or floor 124a of the target container 124. The configurations of the cameras 122, 126, however, need not be limited to the described embodiment. For example, in some embodiments, or more of these cameras may be mounted to the robotic manipulator 110.

[0031] Images captured by the cameras 122, 126 may be provided as input to a computing system, such the computing system 104. Based on the acquired input images, the computing system 104 may determine an optimal placement pose using the herein-described methodology. The optimal placement pose may be defined by a location within the target container 124 and an orientation of the grasped object 118. The optimal placement pose may be outputted to a controller, such as the robot controller 108, to control the end effector 116 to place the grasped object 118 in the target container 124. For example, as described above, the optimal placement pose may be output as high-level controller code to the controller 108, which may therefrom generate low-level commands to control movement of the end effector 116.

[0032] FIG. 2 illustrates a process 200 for executing robotic packing of objects according to one or more example embodiments. The various activity blocks 202-218 of the process 200, including components thereof, may be implemented by an autonomous system in various ways, for example, as hardware and programming. The programming for the activity blocks may take the form of  processor-executable instructions stored on non-transitory machine-readable storage mediums and the hardware may include processors to execute those instructions. For example, the programs may run on a computing system (e.g., an industrial PC) or on a smaller device (e.g., a controller) of an autonomous system. Furthermore, the processing capability may be distributed among multiple system components, such as among multiple processors and memories, optionally including multiple distributed processing systems or cloud / network elements. For illustration, the activity blocks of the process 200 are herein described in connection with the system 100 shown in FIG. 1.

[0033] FIG. 2 is not intended to indicate that the activity blocks of the process 200 are to be executed in any particular order, or that all of the activity blocks of the process 200 are to be included in every case. Additionally, the process 200 can include any suitable number of additional operations.

[0034] At 202, the computing system 104 may acquire an image of the target container 124 captured by the camera 126. According to a disclosed embodiment, the acquired image may define a depth map of the target container 124. The depth map acquired at 202 can be a raw depth map, including a two-dimensional (2D) representation of image pixels that contains, for each pixel, a depth value corresponding to a distance with respect to the viewpoint of the camera 126. To generate a depth map of the target container 124, the camera 126 may suitably include a depth camera, or an RGB-D camera that can acquire an image with red-green-blue (RGB) color and depth (D) channels. Alternately, the camera 126 may include a 3D point cloud sensor. A point cloud may include a set of points in a 3D coordinate system that represent a 3D surface or multiple 3D surfaces, where each point position is defined by its Cartesian coordinates in a real-world reference frame 130. The point cloud can be converted into a depth map by applying a sequence of known transforms based on intrinsic parameters (e.g., coordinates of the principal point or optical center, and focal length) of the camera 126.

[0035] At 204, the computing system 104 may use the raw depth map acquired at 202 to construct a heightmap of the target container 124. The heightmap may be generated by segmenting regions which are at the same height forming a surface. The heightmap may thereby indicate a number of placement regions in the target container 124, where each placement region represents a plane surface defined by the container 124 or any object 118 placed therein at a specific height level from the base 124a of the container 124.

[0036] In one embodiment, the placement regions may be computed by clustering contiguous pixels in the raw depth map based on height measured normally from the base 124a of the target container 124. The depth value of a pixel in the raw depth map corresponds to the distance of the surface represented in the pixel from a camera viewpoint, which may be converted into a height measured normally from the base 124a of the target container 124. To that end, the camera 126 may be preferably positioned so as to have a viewing direction substantially normal to the container base 124a. If the camera 126 is positioned at an angle in relation to the container base 124a, the camera image may be suitably re-projected to compute the height from the depth value using known transformations. Given the pixel-wise height values, the placement regions may be computed using state-of-the-art clustering algorithms, such as density-based spatial clustering of applications with noise (DBSCAN) , k-means, among others. The height level for each placement region in the resultant heightmap may represent a height value within a defined tolerance band.

[0037] To illustrate, referring to FIG. 4, an input image 400 depicts a target container 124 wherein a number of objects are already placed, including objects 118a, 118b, 118c, 118d, etc. The heightmap 402 depicts five placement regions H0, H1, H2, H3 and H4 computed based on a raw depth map of the input image. Each of the placement regions H0, H1, H2, H3 and H4 includes a group of contiguous pixels at a specific height level, defining a respective surface. As shown, the surface defined by each placement region H0, H1, H2, H3 and H4 may encompass a single object, or multiple adjacently placed objects having the same height, or no objects (i.e., base or floor of the target container) .

[0038] Continuing with reference to FIG. 2, at 206, the computing system 104 may control the robot 102 to pick or grasp an object 118, which may be selected from the objects 118 in the pick bin 120, for placement in the target container 124. In various examples, the object 118 may be grasped in a model-free manner utilizing AI algorithms or computer vision techniques based on an image of the pick bin 120 captured by a camera (not shown) . Alternatively, when the given object 118 is known to the system 100, in some cases, the system 100 can use a model of the given object to grasp the object 118.

[0039] At 208, the computing system 104 may acquire an image of the grasped object 118 captured by the camera 122. To capture the object image, the robot 102 may be controlled to move and position the grasped object 118 over the camera 122, such that the camera 122 can capture an  image of the grasped object 118 from a perspective vertically below the grasped object 118. In general, the camera 122 may preferably have a viewing direction substantially normal to the bottom surface 118a of the grasped object 118, such that the captured image essentially includes just the bottom surface 118a of the grasped object 118. The target container 124 can be supported by a surface, such as a table, conveyer, or the like. In some examples, the camera 122 may rest upon the same surface as the target container 124. In other examples, the camera 122 can be supported by a different surface than the surface that supports the target container 124. The camera 122 can capture the image of the grasped object 118 when the end effector 116, and thus the grasped object 118, is positioned above and in view of the camera 122 a predetermined distance or height from the camera 122.

[0040] According to a disclosed embodiment, the image acquired at 208 may define a raw depth map of the grasped object 118. The raw depth map may include a 2D representation of image pixels that contains, for each pixel, a depth value corresponding to a distance with respect to the viewpoint of the camera 122. The camera 122 may accordingly include a depth camera or an RGB-D camera that can generate a depth map of the grasped object 118. Alternately, the camera 122 may include a 3D point cloud sensor that can generate a point cloud of the scene including the grasped object 118, which may be converted into a depth map by applying a sequence of known transforms based on intrinsic parameters (e.g., coordinates of the principal point or optical center, and focal length) of the camera 122.

[0041] At 210, based on the image acquired at 208, the computing system 104 may estimate dimensions of the grasped object 118. For example, based on the configuration of the camera 122 described above, the dimensions (e.g., length and breadth) of the bottom surface 118a as well as a height of the grasped object 118 may be determined from the acquired raw depth map. In various examples, the computing system 104 may estimate the object dimensions to define a generalized cuboid or cylinder, though it will be understood that the system can estimate other geometric shapes (e.g., sphere) based on the raw depth map of the grasped object 118. The 2D footprint of the grasped object 118 (e.g., length and breadth of the bottom surface 118a) extracted at 210 may be represented by an object kernel. According to disclosed embodiments, the object kernel may be determined based on pixel dimensions of a segmentation mask corresponding to the grasped object 118 in the acquired image  / raw depth map. That is, according to disclosed embodiments, the object kernel may be represented by a two-dimensional array of defined values, the dimensions of the array  corresponding to the pixel dimensions representing the length and breadth of the object segmentation mask computed from the acquired image  / raw depth map. In some embodiments, the dimensions of the object kernel may be defined by adding a padding around the object segmentation mask. The padding may enable more spacing between objects or may be used to address uncertainty or noise from the object segmentation mask computation.

[0042] Furthermore, the grasping point (pick point) of the end effector 116 may not always coincide with the center of the grasped object 118. Accordingly, at 210, in addition to the object dimensions, a grasp offset between the pick point and the center of the grasped object 118 may be estimated.

[0043] It is to be noted that the activity blocks 202-204 and 206-210 are mutually independent and need not be performed in the sequence shown in FIG. 2.

[0044] At 212, the computing system 104 may compute an optimal placement pose that can maximize packing efficiency and stability. The input to the optimal placement pose computation process may include the state information of the target container 124 represented by the heightmap (obtained at 204) and the object information of the grasped object 118 (obtained at 210) . Generally described, the placement pose computation may work as follows. Different features such as surface slope or distance from the edges of the target container 124 may affect the placement feasibility / quality. For a given placement region, the heightmap may be used to construct feature maps for a number of such features that affect placement feasibility and / or quality. A feature cost map may be computed for each feature by convolving the feature map with the object kernel. The feature cost maps may be combined to compute a total cost map for that placement region. An optimal placement pose may be computed by identifying a minima from the total cost map (s) for one or more of the placement regions. The computed optimal placement pose may be defined by a location within the target container 124 and an orientation of the grasped object 118. Example embodiments to compute the optimal placement pose are described referring to FIG. 3.

[0045] Still referring to FIG. 2, at 214, the computing system 104 may output the optimal placement pose to the controller 108 to control the robot 102 to execute placement of the grasped object 118 in the target container 124. The output provided to the controller 108 may additionally specify the grasp offset (if any) determined at 210. The grasped object 118 may be placed in the  optimal placement pose by the robot 102 without making any adjustments after the robot 102 releases the object 118 from its grasp.

[0046] At 216, based on an image of the pick bin 120, the computing system 104 may determine whether there is another object 118 to be packed. Additionally, or alternatively, at 216, the computing system 104 may determine whether the target container 124 is sufficiently packed such that no other objects can be placed within the container 124, for instance, based on an image of the target container 124 after execution of the placement. If there is another object to be placed in the target container 124, the process 200 may return to 202, so that the camera 126 can capture an updated image of the target container 124 that includes the object 118 that was just placed, and an updated heightmap may be constructed based on the updated image. The process 200 may be repeated such that a new grasped object can be placed in its optimal pose as determined by the computing system 104. When there are no more objects for the target container 124 or the target container 124 is sufficiently packed, the process 200 may end, at 218.

[0047] FIG. 3 illustrates a process 212 for computing an optimal placement pose according to one or more embodiments. FIG. 3 is not intended to indicate that all of the described operations of the process 212 are to be included in every case. Additionally, the process 212 can include any suitable number of additional operations.

[0048] At 302, a placement region may be selected from the heightmap. For example, the placement region corresponding to the lowest height level may be initially selected, followed by the next height level, and so on.

[0049] At 304, an orientation of the of the object kernel may be selected that is to be applied for the subsequent convolution operations. The orientation of the object kernel may define the orientation of the grasped object 118 when placed in the target container 124. The number of orientations considered can proportionately affect computation time. According to one embodiment, e.g., in use cases involving rectangular cuboidal or cylindrical objects, two orientations, namely 0 and 90 degrees may be considered. In some embodiments, e.g., in use cases involving square cuboidal or spherical objects, it may be sufficient to consider a single orientation. In various other embodiments, depending on the object shape and the available computational resources, a larger number of orientations (e.g., for every 1, 5 or 10 degrees of rotation) may be considered.

[0050] At 306, the heightmap may be used to construct a feature map for each feature of a number of defined features that affect placement feasibility and / or quality. Examples of such features include indicators for collision, placement height, closeness, slope ratio, side stability, bottom stability and height level uniformity. The mentioned list of features is non-limiting and non-exhaustive. For example, fewer features and / or additional features not explicitly described herein may be considered. According to a disclosed embodiment, each feature map may be constructed by computing, for each pixel in the heightmap, indicative values associated with the respective feature computed with respect to the height level of the selected placement region. Next, at 308, a feature cost map may be computed for each feature by convolution of the respective feature map with the object kernel (in the selected orientation) . Each pixel in the feature cost map may represent a placement pose defined by a corner point (e.g., top left corner point) of the object kernel. Before performing the convolution operation, it may be ensured that the object kernel and the heightmap have the same scaling factor / resolution.

[0051] Blocks 306-308 are now described in connection with each of the above-mentioned features.

[0052] The collision indicator feature, I (p) , defines a feasibility of a placement pose represented by a pixel (p) . Using the collision indicator feature I (p) , all feasible (valid) points in a placement region may be determined. An example computation of a feature cost map for the collision indicator feature I (p) is illustrated referring to FIG. 5. The image 402’ represents a heightmap of a target container partially packed with objects. The heightmap 402’ depicts multiple placement regions with different colors / intensities. The image 504 shows a segmentation mask defining an object kernel KI. The object kernel KI may comprise a two-dimensional array with a uniform value assigned to all elements of the array. In the shown example, each element of the object kernel KI is assigned a value of “1” . The image 506 represents a feature map, which may be computed such that the indicative value for each pixel (p) in the feature map 506 indicates whether that pixel represents a free or an occupied point, for the given placement region. The shown feature map 506 is computed for the placement region corresponding to the lowest height level, i.e., the base or floor of the container shown by the region H0 in the heightmap 402’ . The image 508 represents a feature cost map computed by convolving the feature map 506 with the object kernel KI. After performing the convolution operation, the value of each pose / pixel (p) in the generated feature cost map 508 may quantify how many points in the object kernel are in collision for that placement pose  / pixel. The  collision indicator function I (p) may return “1” if the pixel value in the feature cost map 508 is greater than zero, else return “0” .

[0053] The placement height feature, H (p) , may be an indicator for placement quality in bin packing. Placing objects at lower positions may not only enhance space utilization, but also improve the stability of the placement, i.e., reduce the possibility of objects falling and resulting in damage. The feature cost map for the placement height may be computed such that the value of each pose / pixel (p) represents the height of the placement region where p is at.

[0054] The closeness feature, C (p) , may be another indicator for placement quality. It is desirable to prioritize poses that are close to other objects or the container wall to achieve tight packing. The closes feature C (p) measures a closeness between the object currently being placed and an environment including the side boundaries of the container and / or other placed objects. An example computation of a feature cost map for the closeness feature C (p) is illustrated referring to FIG. 6. The image 402’ represents the heightmap of the target container. The image 604 shows a segmentation mask defining an object kernel KC. The object kernel KC may also comprise a two-dimensional array with a uniform value assigned to all elements of the array (assigned value is “1” in this example) . The image 606 represents a feature map, which may be computed such that the indicative value for each pixel (p) in the feature map 606 indicates a minimum distance to the environment that includes side boundaries of the container and / or other placed objects. In one embodiment, the feature map 606 may be efficiently computed using an unsigned distance function, where the value for each pixel (p) is the minimum distance from p to an occupied point. The shown feature map 606 is computed for the placement region corresponding to the lowest height level H0 in the heightmap 402’ . The image 608 represents a feature cost map computed by convolving the feature map 606 with the object kernel KC. After performing the convolution operation, the value of each pose / pixel (p) in the generated feature cost map 608 may quantify a measure of closeness to the environment. A higher cost is reflected for pixels that are far away from edges than those that are close to edges.

[0055] The slope ratio feature, S1 (p) , may also be an indicator for placement quality. In a real-world packing problem, the placed objects may be tilted or have a curvy surface at the top. It is desirable to prioritize placement of new objects on flat surfaces. An example computation of a feature cost map for the slope ratio feature S1 (p) is illustrated referring to FIG. 7. The image 402’  represents the heightmap of the target container. The image 704 shows a segmentation mask defining an object kernel KS1. The object kernel KS1 may also comprise a two-dimensional array with a uniform value assigned to all elements of the array (assigned value is “1” in this example) . The image 706 represents a feature map, which may be computed such that the indicative value for each pixel (p) in the feature map indicates a detected slope ratio. In this example, the objects are cuboid, and hence only small irregularities have been detected as slopes. The slope ratio may be detected by a continuous ascent or descent from the raw depth map of the target container. For example, in the feature map 706, the indicative value of a pixel may be equal to “1” if the detected slope ratio is above a threshold, else equal to “0” . Alternately, the indicated value of a pixel may reflect the actual slope ratio detected at that point. The image 708 represents a feature cost map computed by convolving the feature map 706 with the object kernel KS1. After performing the convolution operation, the value of each pose / pixel (p) in the generated feature cost map 708 may quantify an average slope ratio. A higher cost is reflected for pixels associated with high slope surfaces than those associated with low slope surfaces.

[0056] The side stability feature, S2 (p) , may be another indicator for placement quality. During the packing process, an object can move around in the container due to external factors. It is desirable to prioritize placements where the sides of the object are in contact with (supported by) surrounding objects. An example computation of a feature cost map for the side stability feature S2 (p) is illustrated referring to FIG. 8. The image 402’ represents the heightmap of the target container. The image 804 shows a segmentation mask defining an object kernel KS2. The object kernel KS2 may comprise a two-dimensional array with a uniform distinct value assigned to boundary elements of the array representing an object edge. In the shown example, the boundary elements of the object kernel KS2 are assigned a value of “1” , while the remaining elements are assigned a value of “0” . The image 806 represents a feature map, which may be computed such that the indicative value for each pixel (p) in the feature map 806 indicates whether or not a point represented by that pixel is at least at a threshold height in relation to the given placement region. The threshold height could be, for example, the height of the object to be placed, or may be higher or lower than the height of the object to be placed by a defined amount / percentage. The shown feature map 806 is computed for the placement region corresponding to the lowest height level H0 in the heightmap 402’ . The image 808 represents a feature cost map computed by convolving the feature map 806 with the object kernel KS2. After performing the convolution operation, the value of each pose / pixel (p) in the generated feature cost map 808 may quantify how much of the object  edge has side support. A higher cost is reflected for pixels associated with higher side support than those associated with lower side support. Since a higher side support is desirable, a negative of this feature cost may be used in the computation of the total cost map.

[0057] The bottom stability feature, S3 (p) , may be yet another indicator for placement quality. In many instances, an object may need to be placed on a smaller object such that part of it is hanging or may need to be balanced on multiple small objects. It is desirable to prioritize placements with good bottom support. An example computation of a feature cost map for the bottom stability feature S3 (p) is illustrated referring to FIG. 9. The image 402’ represents the heightmap of the target container. The image 904 shows a segmentation mask defining an object kernel KS3. The object kernel KS3 may comprise a two-dimensional array with values assigned to elements of the array that are indicative of a distance from a center of mass of the object kernel KS3. Assuming a uniform mass distribution, the center of mass, in most cases, can be the centroid of the object kernel KS3. The image 906 represents a feature map, which may be computed such that the indicative value for each pixel (p) in the feature map 906 indicates whether or not a point represented by that pixel is at a height lower than the given placement region. For example, pixels representing points below the given placement region may be assigned value “1” , and all other pixels may be assigned value “0” . The shown feature map 906 is computed for the placement region at the next height level above the lowest height level H0 in the heightmap 402’ . The image 908 represents a feature cost map computed by convolving the feature map 906 with the object kernel KS3. After performing the convolution operation, the value of each pose / pixel (p) in the generated feature cost map 908 may quantify a measure of bottom support. A higher cost is reflected for pixels associated with more hanging than those associated with less hanging, i.e., lesser the hanging, more the bottom support. The described configuration of the object kernel KS3 can ensure that a higher priority (lower cost) is assigned to placement poses with more bottom support at the corners of the object being placed. For example, the system may prioritize a placement pose where an object has 50%bottom support with all four corners supported, in comparison to a placement pose where the object has 50%bottom support only on one side (i.e., with only two corners supported) , thus ensuring a stable placement.

[0058] The height level uniformity feature, S4 (p) , may be still another indicator for placement quality. It is desirable to place objects in a manner that avoids a new height level from being formed. An ideal placement of an object would be next to other objects of the same height. An example computation of a feature cost map for the height level uniformity feature S4 (p) is illustrated  referring to FIG. 10. The image 402’ represents the heightmap of the target container. The image 1004 shows a segmentation mask defining an object kernel KS4. The object kernel KS4 may also comprise a two-dimensional array with a uniform distinct value assigned to boundary elements of the array representing an object edge. In the shown example, boundary elements of the object kernel KS4 are assigned a value of “1” and remaining elements are assigned a value of “0” . The image 1006 represents a feature map, which may be computed such that the indicative value for each pixel (p) in the feature map 1006 indicates a height difference between a point represented by that pixel and a top surface of the grasped object if placed in the given placement region. The shown feature map 1006 is computed for the placement region corresponding to the lowest height level H0 in the heightmap 402’ . The image 1008 represents a feature cost map computed by convolving the feature map 1006 with the object kernel KS4. After performing the convolution operation, the value of each pose / pixel (p) in the generated feature cost map 1008 may quantify a measure of uniformity with surrounding objects. A higher cost is reflected for pixels associated with highly non-uniform height levels than those associated with uniform height levels.

[0059] Referring again to FIG. 3, at 310, the feature cost maps for the respective features may be combined to compute a total cost map. According to a disclosed embodiment, the total cost map may be represented on a two-dimensional image space, where the value of each pixel (p) may be computed as a linear addition (e.g., a weighted sum) of the values of the corresponding pixels in the feature cost maps. Thus, in one embodiment, the total cost map J (p) may be computed using the following cost function: J (p) =c0I (p) +c1H (p) +c2C (p) +c3S1 (p) -c4S2 (p) +c5S3 (p) +c6U (p)   (1)

[0060] In equation (1) , c0, c1, c2, c3, c4, c5 and c6 are positive values defining weight coefficients for respective features, which may be selected or tuned based on the specific use case. In one embodiment, c0 may have a significantly higher value than the remaining weight coefficients so that a placement pose / pixel (p) that indicates that the object is in collision (i.e., not a feasible pose) has a very high total cost, ultimately ensuring that said placement pose does not define a minima. In some embodiments, the collision feature cost map may be used to filter out non feasible placement poses in an initial step, and the cost function J (p) may be evaluated based on the remaining features, i.e., the component c0I (p) need not be considered in equation (1) . Also, in equation (1) , the negative (-) sign before the feature S2 (p) indicates that a higher feature cost (i.e.,  higher side support) is desirable for this feature.

[0061] At 312, a check may be performed to determine if there are more orientations to be considered. If yes, the process 212 may return to 304, where a different orientation is selected, and a corresponding total cost map subsequently computed. If no, the process may continue to 314.

[0062] At 314, a check may be performed to determine if there are more placement regions to be considered. If yes, the process 212 may return to 302, where a different placement region is selected, and corresponding total cost map subsequently computed (for the defined number of orientations) . If no, the process may continue to 316.

[0063] At 316, an optimal placement pose may be computed by identifying the global minima from the total cost maps computed for all of the plurality of placement regions and all of the orientations. The optimal placement pose may be defined by a location within the target container 124 and an orientation of the grasped object 118 when placed in the target container 124.

[0064] The global minima may be determined as a pose (pixel) in an image space defining a corner point of the object 118, which may be converted to a location in the target container 124 defined by X, Y, Z coordinates in the real-world reference frame 130. The conversion may be computed using a sequence of known transforms using the camera intrinsic parameters described above. The orientation defined by the optimal placement pose may correspond to the orientation of the object kernel in the identified global minima. The orientation of the placed object may be defined, for example, as a yaw angle in a plane parallel to the base 124a of the target container 124.

[0065] It should be noted that the loops defined by decision blocks 312 and / or 314 can be optional, depending on whether multiple placement regions and / or multiple orientations need to be considered. As described above, for certain object shapes, only a single orientation may be considered, obviating decision block 314. Furthermore, in certain use cases, only a single predetermined placement region may be considered, obviating decision block 312. The single placement region may be computed, for example, by an upstream robotic pick process, such as disclosed in the European Patent Application No. 24158595.9, titled PLACE CONDITIONED PICK FOR ROBOTIC PICK AND PLACE OPERATIONS, filed by the present Applicant, which is incorporated by reference herein in its entirety.

[0066] A technical effect of using convolutions to determine the total cost map is that it makes it possible to compute the global minima from all the feature cost map points in a straightforward manner, thereby eliminating a gradient optimization step that may return potentially sub-optimal solutions based on a local minimum.

[0067] According to a disclosed embodiment, at 308, each feature map may be computed by convolving the respective feature map with the object kernel using Fast Fourier Transformation (FFT) convolution operation. The convolutions are rapidly performed by transforming the feature maps from an image space to a frequency space and computing the feature cost maps in the frequency space by convolution with the object kernel. At 310, the total cost map may be computed by transforming the results of the FFT convolution operations (feature cost maps) back to the image space and performing a simple linear addition operation (e.g., using equation (1) ) . The proposed methodology can thereby suitably leverage FFT to realize significantly low cycle time.

[0068] To quantitively illustrate, each FFT convolution operation in the described embodiments took about 5 millisecond computation time allowing for efficient computation of an optimal placement pose. The overall computation time was 50 milliseconds, which is a remarkable reduction (about 10-fold) compared to existing solutions.

[0069] Moreover, in relation to existing solutions, the proposed methodology can provide a significant increase in the number of objects that can be packed per container and can furthermore reduce the rotational and positional displacement of the placed objects. This is particularly enabled by the incorporation of the height level uniformity feature in combination with the approach of determining a globally optimal solution as described above.

[0070] The embodiments of the present disclosure may be implemented with any combination of hardware and software. In addition, the embodiments of the present disclosure may be included in an article of manufacture (e.g., one or more computer program products) having, for example, a non-transitory computer-readable storage medium. The computer readable storage medium has embodied therein, for instance, computer readable program instructions for providing and facilitating the mechanisms of the embodiments of the present disclosure. The article of manufacture can be included as part of a computer system or sold separately.

[0071] The computer readable storage medium can include a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network.

[0072] The system and processes of the figures are not exclusive. Other systems, processes and menus may be derived in accordance with the principles of the disclosure to accomplish the same objectives. Although this disclosure has been described with reference to particular embodiments, it is to be understood that the embodiments and variations shown and described herein are for illustration purposes only. Modifications to the current design may be implemented by those skilled in the art, without departing from the scope of the appended claims.

Claims

1.A method for performing robotic packing of objects in a container, comprising:acquiring a first image of an object (118) grasped by a robotic end effector (116) ,acquiring a second image of the container (124) ,based on the first image, estimating dimensions of the grasped object (118) ,based on the second image, constructing a heightmap (402, 402’) indicating a plurality of placement regions (…Hi…) , each placement region (Hi) representing a plane surface defined by the container (124) or any object (118) placed therein at a specific height level from a base (124a) of the container (124) ,for a given placement region (Hi) :based on the heightmap (402, 402’) , constructing a respective feature map (506, 606, …1006) for each feature of a plurality of features that affect placement feasibility and / or quality,computing a respective feature cost map (508, 608, …1008) for each of the features by convolving the respective feature map (506, 606, …1006) with an object kernel (K) representing a 2D footprint defined by the dimensions of the grasped object (118) , andcomputing a total cost map based on a combination of the feature cost maps (508, 608, …1008) , andcomputing an optimal placement pose for executing placement of the grasped object (118) in the container (124) by the end effector (116) by identifying a minima from the total cost map computed respectively for one or more of the plurality of placement regions (…Hi…) .2.The method according to claim 1, wherein each feature map (506, 606, …1006) is constructed by computing, for each pixel in the heightmap (402, 402’) , indicative values associated with the respective feature computed with respect to the height level of the given placement region (Hi) .3.The method according to any of claims 1 and 2, wherein the object kernel (K) is determined based on pixel dimensions of a segmentation mask (504, 604, …1004) corresponding to the grasped object (118) in the first image.4.The method according to any of claims 1 to 3, wherein each feature cost map (508, 608, …1008) is computed by convolving the respective feature map (506, 606, …1006) with the object kernel (K) using Fast Fourier Transformation (FFT) convolution operation, wherein the total cost map for the given placement region (Hi) is computed by linear addition of the results of the FFT convolution operations transformed to an image space.5.The method according to any of claims 1 to 4, wherein the total cost map is computed respectively for each of the plurality of placement regions (…Hi…) , wherein the optimal placement pose is determined by identifying a global minima from the total cost maps computed for all of the plurality of placement regions (…Hi…) .6.The method according to any of claims 1 to 5, wherein, for the given placement region (Hi) , the total cost map is computed respectively for each of a number of orientations of the object kernel (K) used in the convolution, the orientations of the object kernel (K) respectively defining orientations of the grasped object (118) when placed in the container (124) , wherein the optimal placement pose is determined by identifying a global minima from the total cost maps computed for all of the orientations.7.The method according to any of claims 1 to 6, wherein the optimal placement pose is defined by a location within the container (124) and an orientation of the grasped object (118) .8.The method according to any of claims 2 to 7, wherein the plurality of features includes a collision feature,wherein the respective feature map (506) for the collision feature is computed such that the indicative value for each pixel in the feature map (506) indicates whether that pixel represents a free or an occupied point, for the given placement region (Hi) ,wherein the object kernel (KI) for the collision feature comprises a two-dimensional array with a uniform value assigned to all elements of the array, andwherein the respective feature cost map (508) computed by the convolution quantifies, for each pixel representing a placement pose (p) , how may points in the object kernel are in collision.9.The method according to any of claims 2 to 8, wherein the plurality of features includes a closeness feature,wherein the respective feature map (606) for the closeness feature is computed such that the indicative value for each pixel in the feature map (606) indicates a minimum distance to an environment that includes side boundaries of the container and / or other placed objects,wherein the object kernel (KC) for the closeness feature comprises a two-dimensional array with a uniform value assigned to all elements of the array, andwherein the respective feature cost map (608) computed by the convolution quantifies, for each pixel representing a placement pose (p) , a closeness to the environment.10.The method according to any of claims 2 to 9, wherein the plurality of features includes a slope ratio feature,wherein the respective feature map (706) for the slope ratio feature is computed such that the indicative value for each pixel in the feature map (706) indicates a detected slope ratio,wherein the object kernel (KS1) for the slope ratio feature comprises a two-dimensional array with a uniform value assigned to all elements of the array, andwherein the respective feature cost map (708) computed by the convolution quantities, for each pixel representing a placement pose (p) , an average slope ratio.11.The method according to any of claims 2 to 10, wherein the plurality of features includes a side stability feature,wherein the respective feature map (806) for the side stability feature is computed such that the indicative value for each pixel in the feature map (806) indicates whether or not a point represented by that pixel is at least at a threshold height in relation to the given placement region (Hi) ,wherein the object kernel (KS2) for the side stability feature comprises a two-dimensional array with a uniform distinct value assigned to boundary elements of the array representing an object edge, andwherein the respective feature cost map (808) computed by the convolution quantities, for each pixel representing a placement pose (p) , how much of the object edge has side support.12.The method according to any of claims 2 to 11, wherein the plurality of features includes a bottom stability feature,wherein the respective feature map (906) for the bottom stability feature is computed such that the indicative value for each pixel in the feature map (906) indicates whether or not a point represented by that pixel is at a height lower than the given placement region (Hi) ,wherein the object kernel (KS3) for the bottom stability feature comprises a two-dimensional array with values assigned to elements of the array indicative of a distance from a center of mass of the object kernel, andwherein the respective feature cost map (908) computed by the convolution quantities, for each pixel representing a placement pose (p) , a measure of bottom support.13.The method according to any of claims 2 to 12, wherein the plurality of features includes a height level uniformity feature,wherein the respective feature map (1006) for the height level uniformity feature is computed such that the indicative value for each pixel in the feature map (1006) indicates a height difference between a point represented by that pixel and a top surface of the grasped object if placed in the given placement region (Hi) ,wherein the object kernel (KS4) for the height level uniformity feature comprises a two-dimensional array with a uniform distinct value assigned to boundary elements of the array representing an object edge, andwherein the respective feature cost map (1008) computed by the convolution quantities, for each pixel representing a placement pose (p) , a uniformity in height level with surrounding objects.14.A non-transitory computer-readable storage medium including instructions that, when processed by one or more processors, configure the one or more processors to perform the method according to any one of claims 1 to 13.15.An autonomous system (100) for performing robotic packing of objects in a container, comprising:a robot (102) comprising an end effector (116) ,one or more cameras (122, 126) configured to capture a first image of an object (116) grasped by the end effector (116) and capture a second image of the container (124) ,one or more processors,memory storing instructions executable by the one or more processors to:based on the first image, estimate dimensions of the grasped object (118) ,based on the second image, construct a heightmap (402, 402’) indicating a plurality of placement regions (…Hi…) , each placement region (Hi) representing a plane surface defined by the container (124) or any object (118) placed therein at a specific height level from a base (124a) of the container (124) ,for a given placement region (Hi) :based on the heightmap (402, 402’) , construct a respective feature map (506, 606, …1006) for each feature of a number of features that affect placement feasibility and / or quality,compute a respective feature cost map (508, 608, …1008) for each of the features by convolving the respective feature map (506, 606, …1006) with an object kernel (K) representing a 2D footprint defined by the dimensions of the grasped object (118) , andcompute a total cost map based on a combination of the feature cost maps (508, 608, …1008) , andcompute an optimal placement pose for executing placement of the grasped object (118) in the container (124) by the end effector (116) by identifying a minima from the total cost map computed respectively for one or more of the plurality of placement regions (…Hi…) .

Citation Information

Patent Citations

  • Place conditioned pick for robotic pick and place operations

    EP4606533A1

  • Robotic system with dynamic pack adjustment mechanism and methods of operating same

    US20210129334A1

Cited By

  • Cargo loading method, device and equipment based on deep reinforcement learning

    CN121340319A

  • A cargo loading method, device and equipment based on deep reinforcement learning

    CN121340319B