A destacking method, apparatus and electronic equipment
By acquiring information about the top layer of the stack for collision detection and priority setting, the problems of low efficiency and collision risk in existing destacking methods are solved, and a safe and efficient destacking process is achieved.
Patent Information
- Application Number
- CN202310186585.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-22
- Publication Date
- 2025-12-02
- Estimated Expiration
- 2043-02-22
AI Technical Summary
Existing depalletizing methods lack strategies to improve depalletizing efficiency, resulting in additional movement time and potential package collisions.
By acquiring the position and size information of the top layer of the stack, collision detection is performed to determine the target packages that will not collide. The grabbing priority is set according to the package height, size and distance, and the grabbing order is arranged reasonably.
It improves depalletizing efficiency, avoids collisions during package movement and handling, and ensures the safety and efficiency of the depalletizing process.
Smart Images

Figure CN115947127B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of robotics, and in particular to a destacking method, apparatus, and electronic device. Background Technology
[0002] Depalletizing is the process of picking up cartons (or bags) one by one from a pallet and placing them on a conveyor belt to transport them to other process locations. The depalletizing strategy affects depalletizing efficiency; an unreasonable depalletizing strategy will lead to additional movement time, and there is a lack of depalletizing methods in the relevant technology to improve depalletizing efficiency. Summary of the Invention
[0003] The purpose of this application is to provide a highly efficient depalletizing method to improve depalletizing efficiency. The specific technical solution is as follows:
[0004] According to a first aspect of this application, a destacking method is provided, the method comprising:
[0005] Obtain the package information of each package located at the top layer of the stack, wherein the package information of each package includes: the location information of the package and the size information of each package;
[0006] For each package, collision detection is performed on the movement path that moves the package to the target location based on the package information of each package, and the collision detection result is obtained;
[0007] The target package that does not collide with the collision detection result is captured and placed at the target location.
[0008] In one possible embodiment, the step of performing collision detection on the movement path for moving the packages to the target location based on the package information of each package, and obtaining the collision detection result, includes:
[0009] Based on the location and size information of the first package, a first set of points is determined for the movement path that moves the first package to the target location. The first set of points includes all spatial points on the movement path of the first package, and the first package is any one of the packages.
[0010] Based on the location and size information of the second package, a second set of points corresponding to the second package is determined. The second set of points includes all spatial points included in the second package. The second package is any package among the packages that is not the first package.
[0011] If the Minkowski difference between the first point set and the second point set contains the origin, then the collision detection result is determined to be that the first package and the second package will collide.
[0012] In one possible embodiment, the step of performing collision detection on the movement path for moving the packages to the target location based on the package information of each package, and obtaining the collision detection result, includes:
[0013] If the Minkowski difference between the first and second point sets does not contain the origin, then the collision detection result is determined to be that the first and second packages will not collide.
[0014] In one possible embodiment, the step of grasping the target package, whose collision detection result is non-collision, to the target location includes:
[0015] The collision detection result indicates that the target package does not collide.
[0016] The package height, package size, and package distance of the target package are determined based on the package information of the target package. The package height is the height of the target package from a preset horizontal plane, and the package distance is the distance of the target package from the target location.
[0017] The grabbing priority of the target package is determined based on the package height, package size and package distance of the target package. The grabbing priority of the target package is positively correlated with the package height and package size of the target package, and negatively correlated with the package distance.
[0018] The target package whose capture priority meets the preset priority condition is captured and placed at the target location.
[0019] In one possible embodiment, determining the grabbing priority of the target package based on its height, size, and distance includes:
[0020] The capture priority of the target package is obtained by weighted summation of the package height, package size and package distance. In the weighted summation process, the weight of package height is greater than the weight of package distance, and the weight of package distance is greater than the weight of package size.
[0021] According to a second aspect of this application, a destacking device is provided, the device comprising:
[0022] The information acquisition module is used to acquire the package information of each package located on the top layer of the stack. The package information of each package includes: the position information of the package and the size information of each package.
[0023] The collision detection module is used to perform collision detection on the movement path that moves the package to the target location for each package based on the package information of each package, and obtain the collision detection result.
[0024] The grasping module is used to grasp the target package that has a non-collision result and place it at the target location.
[0025] In one possible embodiment, the collision detection module includes:
[0026] The first point set module is used to determine the first point set corresponding to the movement path of moving the first package to the target location based on the location information and size information of the first package. The first point set includes all spatial points on the movement path of the first package, and the first package is any one of the packages.
[0027] The second point set module determines the second point set corresponding to the second package based on the location and size information of the second package. The second point set includes all spatial points included in the second package, and the second package is any package that is not the first package among the packages.
[0028] The collision submodule is used to determine that the first package and the second package will collide if the Minkowski difference between the first point set and the second point set contains the origin.
[0029] In one possible embodiment, the collision detection module includes:
[0030] The non-collision submodule is used to determine that the first package and the second package will not collide if the Minkowski difference between the first point set and the second point set does not contain the origin.
[0031] In one possible embodiment, the grasping module includes:
[0032] The target determination submodule is used to determine the target package whose collision detection result is non-collision.
[0033] The information determination submodule is used to determine the height, size and distance of the target package based on the package information of the target package. The package height is the height of the target package from a preset horizontal plane, and the package distance is the distance from the target package to the target location.
[0034] The priority submodule is used to determine the grabbing priority of the target package based on the package height, package size and package distance of the target package. The grabbing priority of the target package is positively correlated with the package height and package size of the target package and negatively correlated with the package distance.
[0035] The grabbing submodule is used to grab the target package that meets the preset priority condition and place it at the target location.
[0036] In one possible embodiment, the priority submodule is specifically used to perform a weighted summation of the target package's height, size, and distance to obtain the target package's grabbing priority, wherein the weight of the package height is greater than the weight of the package distance, and the weight of the package distance is greater than the weight of the package size.
[0037] According to a third aspect of this application, an electronic device is provided, comprising:
[0038] Memory, used to store computer programs;
[0039] A processor, when executing a program stored in memory, implements any of the methods described in the first aspect.
[0040] According to a fourth aspect of this application, a computer-readable storage medium is provided, wherein a computer program is stored therein, and the computer program, when executed by a processor, implements the method described in any of the first aspects.
[0041] This application also provides a computer program product containing instructions that, when run on a computer, cause the computer to perform any of the destacking methods described above.
[0042] Beneficial effects of the embodiments in this application:
[0043] The embodiments provided in this application perform collision detection on the movement path of each package to the target position based on the package information and target position of each package at the top layer of the stack. The collision detection result is obtained, and the package is grabbed as the target package and moved to the target position only if the collision detection result is no collision. This avoids the package being grabbed during the destacking process from colliding with other packages during movement, and also avoids the long grabbing time caused by bypassing other packages to reach the target position during the grabbing of the target package, thus improving the destacking efficiency.
[0044] Of course, implementing any product or method of this application does not necessarily require achieving all of the advantages described above at the same time. Attached Figure Description
[0045] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other embodiments can be obtained based on these drawings.
[0046] Figure 1 A schematic flowchart of a destacking method provided in an embodiment of this application;
[0047] Figure 2 A front view of a stack shape provided in an embodiment of this application;
[0048] Figure 3 A top view of a stack shape provided in an embodiment of this application;
[0049] Figure 4 A top view of a package moving along a straight line, provided in an embodiment of this application;
[0050] Figure 5 A top view of a package zigzag movement path provided in an embodiment of this application;
[0051] Figure 6 A schematic flowchart of another destacking method provided in this application embodiment;
[0052] Figure 7 This is a schematic diagram of the structure of a destacking device provided in an embodiment of this application;
[0053] Figure 8 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0054] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art based on this application are within the scope of protection of this application.
[0055] In related technologies, depalletizing methods typically utilize a Time-of-Flight (TOF) camera to acquire 3D point cloud images of the top layer of goods in a pallet. These images are then input into a trained model to obtain the spatial position information of each package on the top layer. Based on this spatial position information, a depalletizing strategy is determined, and a robotic arm performs single-layer depalletizing operations, repeating the process until all goods on the pallet are removed. This technology provides a vision-guided depalletizing method that uses visual information to determine the position of the top layer packages and grabs them first. However, it does not specify the handling method for packages within the same layer. Different handling methods for packages within the same layer affect depalletizing efficiency. For example, an unreasonable handling method may lead to collisions with other packages during direct grabbing or require additional detours, making depalletizing both unsafe and inefficient. Therefore, this application provides a depalletizing method, such as... Figure 1 As shown, the method includes:
[0056] S101, Obtain package information for each package located on the top layer of the stack.
[0057] S102, For each package, perform collision detection on the movement path that moves the package to the target location based on the package information of each package, and obtain the collision detection result.
[0058] S103, grab the target package that does not collide with the collision detection result and move it to the target location.
[0059] In S101, the package information for each package includes: the location information of the package and the size information of each package.
[0060] A stack shape refers to the external outline of a stack of goods. Common stack shapes include platform stacks, ridged stacks, row stacks, etc. Packages are the goods that make up a stack shape. Different packages can have different shapes and sizes, and different packages can be located in different positions within the stack shape. Therefore, each package in a stack shape has its corresponding package information, including the package's location information, such as the package's height above the ground and its coordinates in space, as well as the package's size information, such as the package's length, width, and height.
[0061] The top layer of a stack refers to the number of packages above which there are no other packages. In other words, the packages visible in the top view of the stack are the top layers. This can be understood as packages of the same height from the same layer, or packages of different heights from different layers. Figure 2 As shown, Figure 2 This is a front view of a stack, where package 1 can be the package at the top of the stack, and packages 1, 2, and 3 can also be packages at the top of the stack. The location information of the packages can be obtained by taking a picture of the stack from above, resulting in a top-down plan view. The location and size information of each package can be determined from this top-down plan view. Figure 3 As shown.
[0062] In S102, the target location is the destination where each package in the stack needs to be placed. It can be a conveyor belt or other fixed location, which is not limited in this application. The movement path to move the package to the target location refers to the movement path of moving the package from its initial position in the stack to the target location in a straight line. It can be understood that since the shortest distance between two points is a straight line, the movement path of moving the package directly from its initial position to the target location in a straight line is also the shortest movement path from the package to the target location.
[0063] As one example, collision detection for each package can utilize spatial partitioning methods, such as using an octree. After partitioning, packages not on the same node as other packages can be considered unlikely to collide. Another example is the algorithm related to the separating axis theorem. For instance, each face of a convex package can be considered a possible separating axis. A line passing through the origin and perpendicular to the separating axis can be drawn, and the projection of each face onto this line can be calculated. It can then be checked whether the projections overlap with those of other packages. If the projections overlap in all cases, it indicates that the package will collide with other packages on the movement path.
[0064] In one possible embodiment, this application performs collision detection on the movement path of each package, which can also be achieved through the following collision detection method:
[0065] S1021, Based on the location and size information of the first package, determine the first set of points corresponding to the movement path that moves the first package to the target location.
[0066] S1022, Based on the location and size information of the second package, determine the second point set corresponding to the second package.
[0067] S1023, if the Minkowski difference between the first point set and the second point set contains the origin, then the collision detection result is determined to be that the first package and the second package will collide.
[0068] In S1021, the first point set includes all spatial points on the movement path of the first package, and the first package is any package among all packages.
[0069] The first package is any package on the top layer of the stack. Spatial points can be point clouds in a 3D point cloud image, and the first point set is the set of all point clouds covered by the first package during its movement. Based on the size information of the first package, all spatial points covered by the first package can be determined, and based on the position information of the first package, the movement path to move the first package to the target position can be determined. Therefore, based on the size and position information of the first package, the first point set corresponding to the movement path to move the first package to the target position can be determined. For ease of description, this point set can be referred to as point set A below.
[0070] In S1022, the second point set includes all spatial points included in the second package, and the second package is any package that is not the first package.
[0071] The second package is any package other than the first package in the top layer of the stack. The second point set is all the spatial points included in the spatial location of the second package. For example, if the second package is a cube with a side length of 1m, then the second point set is all the spatial points included in this 1m cube. Therefore, the specific second point set corresponding to the second package can be determined based on its location and size information. For ease of description, this point set can be referred to as point set B below.
[0072] In S1023, taking the aforementioned point set A and point set B as examples, the definition of their Minkowski difference should be:
[0073] AB = {ab; a∈A, b∈B}
[0074] In the above formula, a and b are two position vectors, where a is the position vector corresponding to any vertex in point set A, b is the position vector corresponding to any vertex in point set B, and ab represents the difference between the position vectors. It can be understood that if ab = 0, it means that a and b are the same position vector. Since a and b are the position vectors corresponding to vertices in point sets A and B respectively, it indicates that point sets A and B intersect. For example, if vector a is represented as (1,1,1), and point set B has a vertex whose vector b is represented as (1,1,1), then ab = (0,0,0), meaning that vectors a and b are two position vectors located at the same position, further indicating that point sets A and B intersect. Furthermore, since point set A (the first point set) and point set B (the second point set) intersect, the movement path of the first package will intersect with the second package; that is, the first package will collide with the second package during its journey to the target location.
[0075] By selecting this embodiment, a first set of points corresponding to the first package and a second set of points corresponding to the second package are determined. The Minkowski difference between the first set and the second set is used to determine whether the first set and the second set have an intersection. This determines whether the first package collides with the second package during its movement to the target position, simplifying the collision detection of the first package and the second package and providing an efficient collision detection method, thereby improving the efficiency of the depalletizing method.
[0076] Correspondingly, if the Minkowski difference between the first and second point sets does not include the origin, it means that any point in the first point set and the spatial point in the second point set do not coincide. Consequently, the first package will not collide with the second package on its movement path to the target location. Therefore, the first package will not collide with any package in the stack during its movement to the target location. Furthermore, the first package should be directly grabbed to the target location to avoid safety issues caused by collisions with other packages during the destacking process and the inefficient situation of detour grabbing that requires avoiding collisions with other packages.
[0077] As an example, whether the Minkowski difference between the first and second point sets contains the origin can be determined using the GJK algorithm. Specifically, as mentioned earlier, if AB contains the origin (i.e., any ab = (0,0,0)), it means that the first package will collide with the second package. Therefore, let AB = C, and the problem can be transformed into searching for the point closest to the origin in point set C. If the point closest to the origin in point set C is not the origin, it means that there is no origin in C, and point set A and point set B do not have the same spatial point, so the first package and the second package will not collide. However, if the point closest to the origin in point set C is the origin, it means that there is an origin in C, and point set A and point set B have the same spatial point, so the first package and the second package will collide.
[0078] Since the amount of spatial point data in the point set is large, it is difficult to directly calculate the coordinates of all spatial points in point set C based on point set A and point set B. Therefore, for point set C, we can iterate through the point set Q corresponding to any tetrahedron formed by any four vertices of the convex body corresponding to point set C to see if it contains the origin. It can be understood that as long as the point set Q corresponding to any tetrahedron in point set C contains the origin, it means that point set C contains the origin.
[0079] First, when determining the point set Q, a search direction v is selected. Since spatial points in point set C are not easily determined, the position vectors at the vertices of point set A are used to determine the direction 'a', which is the same as the search direction v. Specifically, S... A(v) = argmax{a*v}, where 'a' is the direction that maximizes 'a*v'. Since 'a' is in the same direction as 'v', we determine the first vertex 'a' of the tetrahedron. Then, we determine 'b' from the position vectors of the vertices in point set B, which is opposite to the search direction 'v'. We use 'b' as the second vertex of the tetrahedron. At this point, 'a' and 'b' are the two points in point sets A and B that are opposite in direction and farthest apart in the 'v' direction. Next, we change the search direction 'v' to obtain a new search direction. Using the same method as determining vertices 'a' and 'b', we determine the third and fourth vertices of the tetrahedron. Based on this, we determine the four vertices of the tetrahedron. Connecting these four vertices yields a tetrahedron in point set C. The point set corresponding to this tetrahedron is point set Q. We determine whether the spatial points corresponding to point set Q include the origin. If they do, we determine that the first and second packages will collide.
[0080] If the original point is not included, a new point set Q is determined. Specifically, the vertex furthest from the origin in the previous tetrahedron is deleted, and the normal vector corresponding to the face of the triangle formed by the remaining three points is determined. This normal vector is used as the new search direction v. Then, according to the above method, the four vertices of the new tetrahedron are re-determined to obtain a new point set Q. It is then determined whether the new point set Q contains the origin. If it does not, a new point set Q is determined according to the above method.
[0081] Using the above method, it is determined whether the Minkowski difference between the first and second point sets includes the origin. If it does, it indicates that the first and second packages will collide.
[0082] In S103, the collision detection results will include whether each package will collide with other packages when moving to the target location, such as... Figure 4 As shown, package 2 will collide with large package 1 on the path to directly grab package 2 to the target location. Therefore, the collision detection result for package 2 is a collision, and package 2 cannot be used as the target package. If package 2 needs to be grabbed to the target location first in this situation, it is necessary to bypass package 1 and add a movement path, such as... Figure 5 The movement path of package 2 is shown, which reduces depalletizing efficiency. It is understandable that if a package does not collide with any packages in any stack when moving to its target location, such as... Figure 5 As shown in package 1, this indicates that the package will not cause safety issues with other packages during the grabbing process. Furthermore, it is not necessary to bypass other packages on the route to reach the target location during the grabbing process, which improves the efficiency and success rate of depalletizing.
[0083] In this embodiment, based on the package information and target position of each package on the top layer of the stack, collision detection is performed on the movement path of each package as it moves to the target position. The collision detection result is obtained, and only if the collision detection result is no collision is the package captured as the target package and moved to the target position. This avoids collisions between the captured package and other packages during the movement of the package during the destacking process, and also avoids the long capture time caused by bypassing other packages to reach the target position during the capture of the target package, thus improving the destacking efficiency.
[0084] In scenarios where collision detection results for multiple packages are all non-collision, a robotic arm may only be able to grasp one package at a time during depalletizing. Therefore, this application also provides a package grasping method to select the most suitable target package for grasping, such as... Figure 6 As shown, the method includes:
[0085] S601, obtain the package information of each package located on the top layer of the stack.
[0086] S602, for each package, perform collision detection on the movement path that moves the package to the target location based on the package information of each package, and obtain the collision detection result.
[0087] S603, the collision detection result indicates that the target package is not in collision.
[0088] S604, determine the height, size and distance of the target package based on the package information of the target package.
[0089] S605 determines the grabbing priority of the target package based on its height, size, and distance.
[0090] S606, grab the target package that meets the preset priority condition and move it to the target location.
[0091] In S601, this step is the same as in S101. Please refer to the relevant description of S101 for details, which will not be repeated here.
[0092] In S602, this step is the same as in S102. Please refer to the relevant description of S102 for details, which will not be repeated here.
[0093] In S603, as mentioned above, the collision detection result of each package indicates whether the package will collide with other packages when it moves to the target location, and the package whose collision detection result shows no collision is the target package.
[0094] In S604, the package distance is the distance from the target package to the target location, and the package height is the height of the target package from the preset horizontal plane.
[0095] The package information includes the package's size information, such as the package's length, width, and height. The package information also includes the height of the package's location from a preset horizontal plane, i.e., the package's height, and the distance from the target location, i.e., the package's distance. The preset horizontal plane is used as a reference to compare the heights of each package in the stack. The preset horizontal plane can be the ground, the platform on which the stack is placed, or other specific planes. This application does not limit this.
[0096] In S605, the priority of grabbing a target package is positively correlated with the height and size of the package included in the target, and negatively correlated with the distance to the package.
[0097] Understandably, a higher package indicates a higher position within the stack. Failure to prioritize grabbing it could lead to a safety hazard if it falls during subsequent grabbing of other packages. Therefore, package height is positively correlated with the grabbing priority of that target package. Furthermore, when determining package height, comparisons can be made based on the number of layers corresponding to that height. For example, if target package A has 3 layers and target package B also has 3 layers, then the grabbing priority corresponding to the height of target packages A and B should be the same. Even if there is a slight difference between the heights of target packages A and B, as long as this difference is within a preset threshold, it can be determined that the heights of target packages A and B are essentially the same.
[0098] Larger packages occupy more space in the stack and are more likely to collide with other packages as they move. Therefore, they should be prioritized for grabbing. Package size is positively correlated with the grabbing priority of target packages. Conversely, longer package distances mean longer paths and time required for grabbing, resulting in lower grabbing rates. Therefore, to improve depalletizing efficiency, shorter package distances should be prioritized for grabbing. Consequently, the grabbing priority of target packages is negatively correlated with package distance. Based on this, the grabbing priority of each target package is determined.
[0099] Specifically, the priority of each target package can be determined using the following method:
[0100] The capture priority of the target package is obtained by weighted summation of the package height, package size and package distance. In the weighted summation process, the weight of package height is greater than the weight of package distance, and the weight of package distance is greater than the weight of package size.
[0101] The weights for package height, package size, and package distance are determined, with the following weighting: package height has a greater weight than package size, and package size has a greater weight than package distance. It's understood that package height determines the likelihood of a target package falling, thus its weight is set to the highest. Package distance affects the grabbing speed of target packages but not the safety of individual packages in the stack; therefore, its weight is set to be less than that of package height but greater than that of package size. Package size determines the likelihood of a target package colliding with other packages and falling, so its weight is set to be less than that of package distance. Based on this, the weighted sum of package height, package size, and package distance for each target package, along with their corresponding weights, is calculated to obtain the grabbing priority for each target package. The larger the calculated weighted sum, the higher the grabbing priority of that target package.
[0102] By selecting this embodiment, reasonable weights are set for various factors that affect depalletizing safety and efficiency, and reasonable grasping priorities are calculated for each target package so that subsequent depalletizing can be carried out efficiently and safely according to these grasping priorities.
[0103] It is understood that the description of the method for determining the crawling priority in S605 above is only one method for determining the crawling priority provided by this application. In other possible embodiments, different methods can be selected to determine the crawling priority of the target package according to different actual application scenarios.
[0104] As an example, when the stack is large, the weighting can also be done by setting the weight of package distance to the maximum. That is, in this example, the capture priority of the target package is obtained by weighted summation of the package height, package size, and package distance. In this weighted summation, the weight of package distance is greater than the weight of package height and package size. In this example, the weight of package height could be greater than the weight of package size, or vice versa. It's understandable that because the stack is large, the distance difference between each target package and the target location will be significant. In this case, setting the weight of package distance to the maximum allows for priority capture of the nearest target package, improving capture efficiency.
[0105] As another example, if all packages in a stack have similar heights and sizes, then it's unnecessary to consider the weight of each target package's height and size; only the distance between the target packages needs to be considered, thus enabling reasonable and efficient destacking. That is, in this example, the grabbing priority can be determined solely based on the distance between the target packages. For example, the distance between the target packages can be normalized, and the normalized result can be used as the grabbing priority for the target packages.
[0106] As another example, if there is a significant difference in the size of packages within a stack, the weight of package size can be set to the maximum. Therefore, prioritizing the grabbing of larger target packages reduces safety hazards during destacking. Specifically, in this example, the grabbing priority of the target package is determined by a weighted sum of its height, size, and distance. In this weighted summation, the weight of package size is greater than the weights of package height and distance. However, in this example, the weight of package height could be greater than the weight of package distance, or vice versa. It is understandable that if a larger target package falls within the stack, the consequences are more severe than for smaller packages; therefore, larger target packages should be grabbed as early as possible.
[0107] In S606, the preset priority condition can be the highest capture priority, which is the target location of the target package with the highest capture priority. It can be understood that the higher the capture priority of a target package, the more likely that target package will be captured.
[0108] Understandably, once a target package is grabbed, packages that may have collided with it previously will not collide with other packages in the current collision detection and will become target packages themselves. This may cause changes in the grabbing priorities of other target packages, and the final target package that meets the preset priority conditions will also change. Therefore, in order to improve depalletizing efficiency, the collision detection results and grabbing priorities can be recalculated after each target package is grabbed, and the target package with the highest grabbing priority can be re-determined for grabbing.
[0109] By selecting this embodiment, the grabbing priority of each target package is determined based on the package information of the target package, and the target packages whose grabbing priority meets the preset priority conditions are identified for grabbing. A reasonable depalletizing strategy is formulated, which improves the depalletizing efficiency.
[0110] Corresponding to the destacking method of this application, this application also provides a destacking device, such as... Figure 7 As shown, the device includes:
[0111] The information acquisition module 701 is used to acquire the package information of each package located on the top layer of the stack, wherein the package information of each package includes: the position information of the package and the size information of each package;
[0112] The collision detection module 702 is used to perform collision detection on the movement path that moves the package to the target position for each package based on the package information of each package, and obtain the collision detection result.
[0113] The grasping module 703 is used to grasp the target package that has a collision detection result of no collision to the target location.
[0114] In one possible embodiment, the collision detection module 702 includes:
[0115] The first point set module is used to determine the first point set corresponding to the movement path of moving the first package to the target location based on the location information and size information of the first package. The first point set includes all spatial points on the movement path of the first package, and the first package is any one of the packages.
[0116] The second point set module determines the second point set corresponding to the second package based on the location and size information of the second package. The second point set includes all spatial points included in the second package, and the second package is any package that is not the first package among the packages.
[0117] The collision submodule is used to determine that the first package and the second package will collide if the Minkowski difference between the first point set and the second point set contains the origin.
[0118] In one possible embodiment, the collision detection module 702 includes:
[0119] The non-collision submodule is used to determine that the first package and the second package will not collide if the Minkowski difference between the first point set and the second point set does not contain the origin.
[0120] In one possible embodiment, the grasping module 703 includes:
[0121] The target determination submodule is used to determine the target package whose collision detection result is non-collision.
[0122] The information determination submodule is used to determine the height, size and distance of the target package based on the package information of the target package. The package height is the height of the target package from a preset horizontal plane, and the package distance is the distance from the target package to the target location.
[0123] The priority submodule is used to determine the grabbing priority of the target package based on the package height, package size and package distance of the target package. The grabbing priority of the target package is positively correlated with the package height and package size of the target package and negatively correlated with the package distance.
[0124] The grabbing submodule is used to grab the target package that meets the preset priority condition and place it at the target location.
[0125] In one possible embodiment, the priority submodule is specifically used to perform a weighted summation of the target package's height, size, and distance to obtain the target package's grabbing priority, wherein the weight of the package height is greater than the weight of the package distance, and the weight of the package distance is greater than the weight of the package size.
[0126] This application also provides an electronic device, such as... Figure 8 As shown, it includes:
[0127] Memory 801 is used to store computer programs;
[0128] When processor 802 executes a program stored in memory 801, it performs the following steps:
[0129] Obtain the package information of each package located at the top layer of the stack, wherein the package information of each package includes: the location information of the package and the size information of each package;
[0130] For each package, collision detection is performed on the movement path that moves the package to the target location based on the package information of each package, and the collision detection result is obtained;
[0131] The target package that does not collide with the collision detection result is captured and placed at the target location.
[0132] Furthermore, the aforementioned electronic device may also include a communication bus and / or a communication interface, with the processor 802, the communication interface, and the memory 801 communicating with each other via the communication bus.
[0133] The communication bus mentioned in the above electronic devices can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. This communication bus can be divided into address bus, data bus, control bus, etc. For ease of illustration, only one thick line is used to represent it in the diagram, but this does not mean that there is only one bus or one type of bus.
[0134] The communication interface is used for communication between the aforementioned electronic devices and other devices.
[0135] The memory may include random access memory (RAM) or non-volatile memory (NVM), such as at least one disk storage device. Optionally, the memory may also be at least one storage device located remotely from the aforementioned processor.
[0136] The processors mentioned above can be general-purpose processors, including central processing units (CPUs), network processors (NPs), etc.; they can also be digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0137] In another embodiment provided in this application, a computer-readable storage medium is also provided, which stores a computer program that, when executed by a processor, implements the steps of any of the above-described destacking methods.
[0138] In another embodiment provided in this application, a computer program product containing instructions is also provided, which, when run on a computer, causes the computer to perform any of the destacking methods described above.
[0139] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially as a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), etc.
[0140] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0141] The various embodiments in this specification are described in a related manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the embodiments for apparatus, electronic devices, and computer-readable storage media are basically similar to the method embodiments, so the descriptions are relatively simple; relevant parts can be referred to the descriptions of the method embodiments.
[0142] The above description is merely a preferred embodiment of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application are included within the scope of protection of this application.
Claims
1. A method for destacking, characterized in that, The method includes: Obtain the package information of each package located at the top layer of the stack, wherein the package information of each package includes: the location information of the package and the size information of each package; For each package, collision detection is performed on the movement path that moves the package to the target location based on the package information of each package, and the collision detection result is obtained; The target package that does not collide with the collision detection result is captured and placed at the target location; The step of capturing the target package whose collision detection result is non-collision to the target location includes: The collision detection result indicates that the target package does not collide. The package height, package size, and package distance of the target package are determined based on the package information of the target package. The package height is the height of the target package from a preset horizontal plane, and the package distance is the distance of the target package from the target location. The grabbing priority of the target package is determined based on the package height, package size and package distance of the target package. The grabbing priority of the target package is positively correlated with the package height and package size of the target package, and negatively correlated with the package distance. The target package whose capture priority meets the preset priority condition is captured and placed at the target location.
2. The method according to claim 1, characterized in that, The step of performing collision detection on the movement path of moving the package to the target location based on the package information of each package, and obtaining the collision detection result, includes: Based on the location and size information of the first package, a first set of points is determined for the movement path that moves the first package to the target location. The first set of points includes all spatial points on the movement path of the first package, and the first package is any one of the packages. Based on the location and size information of the second package, a second set of points corresponding to the second package is determined. The second set of points includes all spatial points included in the second package. The second package is any package among the packages that is not the first package. If the Minkowski difference between the first point set and the second point set contains the origin, then the collision detection result is determined to be that the first package and the second package will collide.
3. The method according to claim 2, characterized in that, The step of performing collision detection on the movement path of moving the package to the target location based on the package information of each package, and obtaining the collision detection result, includes: If the Minkowski difference between the first and second point sets does not contain the origin, then the collision detection result is determined to be that the first and second packages will not collide.
4. The method according to claim 1, characterized in that, The step of determining the grabbing priority of the target package based on its height, size, and distance includes: The capture priority of the target package is obtained by weighted summation of the package height, package size and package distance. In the weighted summation process, the weight of package height is greater than the weight of package distance, and the weight of package distance is greater than the weight of package size.
5. A destacking device, characterized in that, The device includes: The information acquisition module is used to acquire the package information of each package located on the top layer of the stack. The package information of each package includes: the position information of the package and the size information of each package. The collision detection module is used to perform collision detection on the movement path that moves the package to the target location for each package based on the package information of each package, and obtain the collision detection result. The grasping module is used to grasp the target package that has a collision detection result of "no collision" to the target location; The crawling module includes: The target determination submodule is used to determine the target package that does not collide with the collision detection result. The information determination submodule is used to determine the height, size and distance of the target package based on the package information of the target package. The package height is the height of the target package from a preset horizontal plane, and the package distance is the distance from the target package to the target location. The priority submodule is used to determine the grabbing priority of the target package based on the package height, package size and package distance of the target package. The grabbing priority of the target package is positively correlated with the package height and package size of the target package and negatively correlated with the package distance. The grabbing submodule is used to grab the target package that meets the preset priority condition and place it at the target location.
6. The apparatus according to claim 5, characterized in that, The collision detection module includes: The first point set module is used to determine the first point set corresponding to the movement path of moving the first package to the target location based on the location information and size information of the first package. The first point set includes all spatial points on the movement path of the first package, and the first package is any one of the packages. The second point set module determines the second point set corresponding to the second package based on the location and size information of the second package. The second point set includes all spatial points included in the second package, and the second package is any package that is not the first package among the packages. The collision submodule is used to determine that the first package and the second package will collide if the Minkowski difference between the first point set and the second point set contains the origin.
7. The apparatus according to claim 6, characterized in that, The collision detection module includes: The non-collision submodule is used to determine that the first package and the second package will not collide if the Minkowski difference between the first point set and the second point set does not contain the origin.
8. The apparatus according to claim 5, characterized in that, The priority submodule is specifically used to perform a weighted summation of the target package's height, size, and distance to obtain the target package's capture priority. In the weighted summation process, the weight of the package height is greater than the weight of the package distance, and the weight of the package distance is greater than the weight of the package size.
9. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, when executing a program stored in memory, implements the method described in any one of claims 1-4.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the method described in any one of claims 1-4.
Citation Information
Patent Citations
Method and device for determining workpiece grabbing sequence, computer equipment and medium
CN112464410A
Collision detection method, device and equipment, readable storage medium and program product
CN114224512A