The present disclosure relates generally to a system and method for providing collision avoidance between objects and, more particularly, to a system and method for providing deep collision avoidance between objects in a robotic system that calculates escape vectors using Minkowski balls.
The use of industrial robots to perform a wide range of manufacturing, assembly and material movement operations is well known. One such application is a pick-and-place operation, where a robot picks up individual parts and places each part at a prescribed location for further processing or packaging. Examples of pick-and-place operations include picking a part from a bin and placing the part on a conveyor where it is taken for a next operation, and picking a part from a bin and placing the part in a machine tool fixture where the part is machined, and then subsequently removing the part from the machine tool and placing the machined part on a conveyor. A vision system including one or more cameras is typically used to identify the position and orientation of individual parts in the bin. Then, a specific robotic grasp is identified to be used on a selected part, where the grasp may be chosen from a pre-computed database of grasps that have been generated for the particular part geometry and the particular gripper geometry. However, movement of the robot to perform an optimized grasp for a selected part may cause a collision with another object, where the robot is unable to escape from the collision.
Preventing collisions between a moving robot and an object in the robot environment is an important safety consideration. Although the robot path is programmed so collisions do not occur, the position of parts and objects in the robot environment could vary from their intended position. If a collision between the robot and an object will occur, it is desirable that the robot automatically handle the collision without manual recovery. The robot system will predict a collision before it happens, which is a straightforward collision detection problem. If the robot system predicts a minor collision where the collision with the object will only be at an outer surface of the robot, then the robot should detour around the original planned path of the robot to avoid the collision, which is a straightforward collision avoidance problem. More particularly, for minor collisions, it is easy to find overlapping surfaces between two colliding bodies using heuristics. Using the characteristics of the surfaces (e.g. normal of the overlapping surface) can guide the system to move away from the collision. If the robot system predicts a deep collision where the collision with the object is direct and not at an outer surface, then the robot will need to determine a recovery path, which is a complex deep collision avoidance problem in that deep collision avoidance by heuristics is not enough. More specifically, for a deep collision, the overlapped regions of the colliding objects provides no surface information, and thus the robot system cannot find a direction to escape from the collision.
Mathematical tools have been used in the art to solve the deep collision avoidance problem referred to above. If two bodies collide they have at least one coinciding point pair, and alternately, if there is at least one coincide point pair between two bodies, the two bodies will collide with each other. The Minkowski distance is a metric in a vector space that can be considered as a generalization of both the Euclidean distance and the Manhattan distance, and is an operation defined between two bodies based on this observation. This process exhaustively takes every point in the first body minus every other point in the second body, and produces a new shape or body. If the Minkowski shape contains an origin inside its boundary, it means there exists coincidental points between the first body and the second body, and the two bodies will collide with each other. Interestingly, the boundary of the Minkowski difference carries collision avoidance information. That is, connecting the origin with any boundary point, an escape vector (direction and length) is formed. Moving the second body along this direction with length distance will prevent the collision, regardless of whether it is a minor collision or deep collision.
Determining the Minkowski difference is a rigorous method for escape vector calculations. However, the original Minkowski difference is very slow because of the exhaustive operation. For example, if both bodies contain 1,000,000 points, then the Minkowski difference requires 1,000,000,000,000 subtraction operations.
In order to reduce the computational complexity of using the Minkowski difference for deep collision avoidance, the Gilbert-Johnson-Keerthi (GJK) algorithm was developed to detect collisions for convex shapes and the expanding polytope algorithm (EPA) was developed to compute penetration distances. These two algorithms are often combined as a GJK-EPA technique to perform full deep collision avoidance for convex shapes. The GJK-EPA technique is based on the Minkowski difference, and speeds up the penetration depth calculation by only computing the partial boundary of the Minkowski difference. With this partial boundary, the GJK-EPA technique then retrieves the shortest escape vector to avoid the collision. Because of the speed of the GJK-EPA technique and easy-of-implementation characteristics, the GJK-EPA technique has become one of the most well-known and broadly used methods for providing collision avoidance in robotic systems.
One drawback of the GJK-EPA technique is that it cannot calculate the correct escape vector for non-convex shapes. Consider a shape P and a shape Q involved in collision avoidance. If the P shape is non-convex it has to be decomposed into multiple convex sub-shapes P_i. Then, the GJK-EPA technique computes an escape vector for each of the sub-shapes P_i and the shape Q independently. The resulting escape vectors cannot be combined to recover the ground-truth escape vector because every GJK-EPA computation on the sub-shape P_i and the shape Q ignores P/P_i. Stated another way, for non-convex shapes, convex decomposition is required to divide any non-convex part to an approximated convex shape. Then, the GJK-EPA technique applies to each of the sub-shapes to compute the corresponding vectors v_1 and v_2. Combining the vectors v_1 and v_2 afterwards cannot obtain the true escape vector. Essentially applying the GJK-EPA technique on each of the sub-shapes ignores the other complimentary sub-shapes. As a result, neither vector v_1 nor vector v_2 can avoid the collision.
Another drawback of the GJK-EPA technique is that it only calculates the shortest escape vector. However, this vector may not be a sufficient escape vector for downstream planning tasks. Consider a downstream task where a shape P is planned by a sampling method (e.g. RRT) to pass through a narrow passage Q. Given a random position sample of the shape P, the shortest escape vector for the shape P may be moving out, while ideal escape vectors of the shape P may be moving into the passage in order to produce meaningful samples.
The present disclosure describes a system and method for providing deep collision avoidance between objects in a robotic system that calculates escape vectors using Minkowski balls. For a collision between a part and an object, the method decomposes the part into a union of part balls having a known radius and center location and decomposes the object into a union of object balls having a known radius and center location. The method obtains a Minkowski difference between each pair of the part balls and the object balls, converts each Minkowski difference into a Minkowski ball having a known center location and radius, and combines the Minkowski balls into a union of overlapping Minkowski balls. The method determines an outer boundary of the union of the overlapping Minkowski balls, extracts boundary points on the boundary as escape vectors, and maps each of the escape vectors into collision-free part pose.
Additional features of the presently disclosed methods will become apparent from the following description and appended claims, taken in conjunction with the accompanying drawings.
The following discussion of the embodiments of the disclosure directed to a system and method for providing deep collision avoidance between objects in a robotic system that calculates escape vectors using Minkowski balls is merely exemplary in nature, and is in no way intended to limit the disclosed techniques or their applications or uses.
Various computers and controllers are described and implied above. It is to be understood that the software applications and modules of these computers and controllers are executed on one or more computing devices having a processor and a memory module that stores data and executable code. In particular, this includes a processor in the robot controller 24 that controls the robot 12 performing the object grasping, and in the computer 26 that performs the grasp generation computations. As discussed earlier, either the controller 24 or the computer 26 may be configured to identify objects for grasping in real time operations.
As will be discussed in detail below, this disclosure proposes a technique for providing deep collision avoidance in the robotic system 10 as a non-limiting example that utilizes the Minkowski difference, and is similar to the GJK-EPA technique discussed above. It is noted that although the deep collision avoidance discussed herein references grasping using the robotic systems, those skilled in the art will appreciate that the discussed deep collision avoidance will have other applications, such as in painting and spot welding robotic systems. However, instead of assuming convex shapes and computing a partial Minkowski boundary, this disclosure simplifies the Minkowski difference computation, but still computes the whole Minkowski boundary. This simplification maintains the high speed of the GJK-EPA process, but allows deep collision avoidance of non-convex shapes. Moreover, the proposed technique returns all of the collision-free escape vectors. Users can further select the proper vector subset based on downstream tasks.
The proposed technique efficiently computes all escape vectors for general shapes, including both convex shapes and non-convex shapes. In order to maintain the high computation speed on general shapes, the proposed process approximates the collision bodies into balls. Each one of the balls in one collision shape can form a pair with each one of the balls in the other collision shape. For every ball pair, the Minkowski difference is computed, where the Minkowski difference between two balls is another ball, referred to herein as a Minkowski ball. Therefore, the Minkowski difference between two collision bodies can be efficiently represented as a union of Minkowski balls. The proposed technique then computes the boundary of the union of the Minkowski balls, where every boundary point represents an escape vector. Since all of the boundary points of the Minkowski difference are computed, every escape vector can be extracted. High speed is maintained because the Minkowski difference between a ball pair is simply another ball.
The proposed technique includes four steps, where it is assumed that two collision bodies are an object, such as the part 22 being picked up by the gripper 16, and the gripper 16. The objective is to compute escape vectors for the gripper 16 so that moving the gripper 16 using any of these vectors can escape from a collision with the part 22 regardless of whether the collision is deep or not. For illustration purposes, 2D shapes are described, where 3D shapes are similar.
At box 34, the process obtains the Minkowski difference between each pair of the balls Ai and the balls Bj, where each Minkowski difference is converted to a Minkowski ball. Specifically, the center of each Minkowski ball is obtained by subtracting the center c of the ball Bj in the pair from the center c of the ball Ai in the pair (cAi−cBj), and the radius of each Minkowski ball is obtained by adding the radius r of the ball Bj in the pair and the radius r of the ball Ai in the pair (rAi+rBj). This process is repeated for each pair of the balls Ai and Bj to obtain M*N Minkowski balls, which can be completed within 1e-6 seconds on a standard computer. The union of the Minkowski balls represents the Minkowski difference between the part 22 and the gripper 16.
At box 36, the process computes an outer boundary, i.e., the escape vectors, of the union 52 of the overlapping Minkowski balls 54.
In order to speed up the process, the indices for the balls 54 of different sizes are pre-computed based on the cell size so that data is available in a table when the process is performed. Therefore, only a Boolean operation is required during the collision avoidance calculation and the complexity is proportional to the number of the Minkowski balls 54. In comparison, commonly used union of ball boundary computation requires advanced topology computation and the complexity is proportional to the number of the Minkowski balls 54 times the number of the Minkowski balls 54. Because of the low-order complexity and pre-computation, the computation time can have a five order of magnitude reduction. In exchange, the resolution to the size of the grid cells 72 is restricted.
At box 38, the process maps each of the identified escape vectors into collision-free gripper poses. By selecting a desired one of the escape vectors and applying it to the gripper 16, the gripper 16 can be moved from its current pose into a collision-free pose.
The process described above for identifying escape vectors for avoiding deep collisions has a number of applications including automatic path generation and failure recovery, automatic robot grasp generation and automatic assembly planning. For automatic optimization for internal grasps, three steps can be performed. Those steps include generating collision free poses as discussed above and filtering those poses that are in a narrow object passage. The filtered poses are then statistically clustered in free-space using any suitable algorithm, such as k-means, which is a method for vector quantization, originally from signal processing, that partitions n observations into k clusters in which each observation belongs to the cluster with the nearest mean, or Gaussian mixture models (GMM). One of the clusters is then chosen for the grasp optimization.
While a number of exemplary aspects and embodiments of the collision handling methods in robotic grasp generation have been discussed above, those of skill in the art will recognize modifications, permutations, additions and sub-combinations thereof. It is therefore intended that the following appended claims and claims hereafter introduced are interpreted to include all such modifications, permutations, additions and sub-combinations as are within their true spirit and scope.
| Number | Name | Date | Kind |
|---|---|---|---|
| 20100182344 | Lee | Jul 2010 | A1 |
| 20130231855 | Mcaree | Sep 2013 | A1 |
| 20190361452 | Tahir | Nov 2019 | A1 |
| 20210365032 | Ichnowski | Nov 2021 | A1 |
| 20230182397 | Kubalak | Jun 2023 | A1 |
| Entry |
|---|
| Gilbert, Elmer G., Johnson, Daniel W., and Keerthi, S. Sathiya. “A fast procedure for computing the distance between complex objects in three-dimensional space.” IEEE Journal on Robotics and Automation 4.2 (1988): 193-203. |
| EPA: Van Den Bergen, Gino. “Proximity queries and penetration depth computation on 3d game objects.” Game developers conference. Vol. 170. 2001. |
| Number | Date | Country | |
|---|---|---|---|
| 20240198524 A1 | Jun 2024 | US |