Object interference inspection method
By converting the CAD model of the object into 3D points and calculating the 1D index set, the problem of complexity and long time of interference inspection in robot motion planning is solved, and fast and accurate interference inspection is achieved, which is suitable for real-time motion planning.
Patent Information
- Application Number
- CN202510117308.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-02-27
- Filing Date
- 2025-01-24
- Publication Date
- 2025-08-29
AI Technical Summary
In the robot motion planning, the interference inspection calculation is complex and the calculation time is long, especially in complex environments, and it is difficult to achieve real-time collision avoidance.
Point-set interference inspection technology is used to convert the object's CAD model into 3D points and convert it into 1D index, and interference inspection is performed by calculating the union and intersection of the 1D index set to quickly interfere with obstacles.
It realizes fast and accurate interference inspection, is suitable for real-time motion planning, reduces computer storage needs, and avoids false positive interference judgments.
Smart Images

Figure CN120552035A_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. utility patent application serial number 18 / 540,175, filed on December 14, 2023, entitled “Point Set Interference Check Method and System,” which is a continuation-in-part of U.S. utility patent application serial number 17 / 457,777, filed on December 6, 2021, entitled “Point Set Interference Check,” now US11,878,424. Technical Field
[0002] The present disclosure relates to the field of industrial machine motion control, and more particularly, to an object interference checking technique that defines an object as a set of points, updates three-dimensional (3D) point set coordinates based on object motion, converts the 3D points into 3D indices indicating occupied space, converts the 3D indices into 1D indices and stores the 1D indices as sets for each object and each motion step, performs interference checking calculations by intersection of the sets for a given step, and performs swept volume calculations by union of the sets across multiple steps. Background Art
[0003] The use of industrial robots to perform a wide variety of manufacturing, assembly, and material movement operations is well known. In many robotic workspace environments, obstacles exist and may be in the path of the robot's motion. Obstacles can be permanent structures, such as machinery and fixtures, or they can be temporary or movable. Large workpieces manipulated by robots can themselves be obstacles, as the robot must maneuver in and around the workpiece when performing operations such as welding. In a multi-robot workspace environment, each robot is a potential obstacle to the others. Collisions between any robot component and any obstacle must be absolutely avoided.
[0004] It is known to include interference checking algorithms in motion planning routines, including during real-time motion planning. One prior art technique for interference checking involves defining geometric primitives, such as spheres, cylinders, etc., around each arm of the robot and around each obstacle. The use of geometric primitives is intended to reduce the complexity of the interference checking calculations to a manageable level so that they can be performed quickly enough for real-time motion planning. However, defining geometric primitives around each obstacle and each robot arm is a tedious and time-consuming process. Furthermore, some objects, such as car bodies that are welded or painted by robots, do not lend themselves well to approximation using geometric primitives. Even the robot arms themselves are often not well approximated using geometric primitives, and conservative geometric primitive shapes can lead to false positive interference conditions.
[0005] Another existing technique for interference checking uses CAD models of the robot arm and obstacles. Using CAD models in interference checking calculations avoids the problem of inaccuracies in geometric primitives. However, this method requires calculating distances and detecting interferences between all positions on one CAD model (e.g., the robot end effector) and all positions on the CAD model of every other potential obstacle in the workspace (including all other robot arm components, machines, fixtures, workpieces, etc.). Such calculations are computationally intensive and slow for all but the simplest robot workspace environments. In most cases, collision avoidance calculations take too long to be practical in an environment where motion planning calculations must be performed in real time while the robot is operating.
[0006] Similar interference checking techniques for other types of moving objects, such as machine tools, suffer from the same shortcomings and limitations outlined above for robots.
[0007] In view of the foregoing, there is a need for an improved object interference checking technique that is easy to set up and that quickly and accurately calculates potential object interferences regardless of the number or type of objects and obstacles in the workspace. Summary of the Invention
[0008] According to the teachings of the present disclosure, a technique for object interference checking using point sets is disclosed. The technique uses CAD models of multiple objects and converts the CAD models into multiple 3D points. The 3D point positions are updated based on the motion of any objects and obstacles. The multiple 3D points are then converted into 3D grid space indices that define the space occupied by any point on any object. The 3D grid space indices are then converted into 1D indices, and the 1D indices are stored as a set for each object and each motion step. A swept volume for an object is created by calculating the union of the 1D index sets across multiple motion steps. Interference checking between objects is performed by calculating the intersection of the 1D index sets for a given motion step or position. The 1D indices are converted back into 3D coordinates to define the 3D shape of the swept volume and the 3D positions of any interferences.
[0009] Additional features of the presently disclosed apparatus and methods will become apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1A is an illustration of two industrial robots working near a car body workpiece, which is itself an obstacle. Figure 1B is an illustration of an industrial robot in a machine tending application, where the machine is an obstacle;
[0011] Figure 2is an illustration of steps in a point set method for interference checking according to an embodiment of the present disclosure, the method including converting object 3D points into 1D indices;
[0012] Figure 3 According to an embodiment of the present disclosure Figure 2 , which depicts details of the steps for converting object 3D points into 1D indices;
[0013] Figure 4A 、 4B 4C are diagrams showing interference checking results using conventional CAD model geometry, geometric primitive approximation, and the point set technique of the present disclosure, respectively;
[0014] Figure 5A According to the configuration of the embodiment of the present disclosure Figure 1A Illustration of two industrial robots where the point set interference checking method has detected a collision, and Figure 5B is a diagram of the same two robots sweeping a volume, showing the overlapping area of the volume; and
[0015] Figure 6 is a flow chart of a method for point set interference checking and swept volume calculation according to an embodiment of the present disclosure;
[0016] Figure 7 is an illustration of a machine tool cutter and a workpiece used as first and second objects in a point set interference checking method according to an embodiment of the present disclosure;
[0017] Figure 8 is calculated using the point set interference inspection method according to an embodiment of the present invention and superimposed on the fixed workpiece point Figure 7 A graphical representation of a swept volume of points of a machine tool cutter;
[0018] Figure 9 is calculated using a point set interference checking method according to an embodiment of the present invention Figure 8 A graphical representation of the swept volume of the machine tool tool points and workpiece points and the highlighted set of interfering points; and
[0019] Figure 10 is a flowchart of a method for point set interference checking and swept volume calculation of two or more objects according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0020] The following discussion of embodiments of the present disclosure for object interference checking using point sets represented as ID indices is merely exemplary in nature and is in no way intended to limit the disclosed apparatus and techniques or their applications or uses.
[0021] The use of industrial robots for various manufacturing, assembly, and material movement operations is well known. In many robotic workspace environments, obstacles exist and may be in the path of the robot's motion, that is, the obstacle may be between the robot's current location and the robot's destination location. The obstacles may be permanent structures, such as machinery and fixtures, or they may be temporary or movable. The large workpieces on which the robot is operating may themselves be obstacles, as the robot must maneuver in and around the workpiece when performing operations such as welding. One robot in the workspace may also be a potential obstacle for another robot. Techniques have been developed in the art for calculating the robot's motion so that the tool follows a path that avoids collision between any part of the robot and any obstacles.
[0022] Figure 1A is a diagram of two industrial robots (100, 110) working near a car body workpiece 120. Figure 1A In a workspace, robots 100 and 110 perform spot welding tasks at multiple locations on a workpiece 120. These spot welds include locations within the interior of a vehicle body, which requires robots 100 and 110 to reach inside a door opening. In this application, the vehicle body workpiece 120 itself is an obstacle to the movements of robots 100 and 110. Furthermore, robots 100 and 110 may have overlapping motions, meaning they may become obstructions to one another. The operation of robots 100 and 110 requires performing interference checking calculations on all planned motions.
[0023] Figure 1B Figure 1 illustrates an industrial robot 150 in a machine tending application, where robot 150 places a raw part into a fixture within machine 160 and subsequently removes the finished part from the fixture. In this application, robot 150 needs to reach inside machine 160, which is a potential obstacle to the robot's motion. Again, the operation of robot 150 requires pre-calculation of interference checks for all planned motions.
[0024] One existing technique for interference checking in robotic motion planning involves defining geometric primitives around each arm of the robot and around each obstacle, such as spheres, cylinders, etc. Geometric primitives are used in order to reduce the complexity of the interference checking calculations to a manageable level by approximating the real object geometry with simplified shapes.
[0025] Then, to calculate the robot motion to avoid interference, the distance from the robot arm primitive to the obstacle primitive is calculated. This is much simpler than calculating the distance between the actual detailed shapes of the arm and the obstacle. However, defining geometric primitives around each obstacle and each robot arm is a tedious and time-consuming process. Furthermore, because real robot arm components and real obstacles often have irregular shapes, geometric primitives are often defined with considerable empty space within the primitive's body. This causes the resulting interference check calculation to sometimes return false positive interferences.
[0026] Furthermore, some objects do not lend themselves well to approximation using geometric primitives. For example, Figure 1A In the present invention, the body workpiece 120 is not easily modeled from geometric primitives. It is possible to define a hexahedron ("brick-shaped") geometric primitive surrounding the body workpiece 120 to prevent the robot 100 / 110 from colliding with it, but this hexahedron would contain a large amount of free space around the body, and this free space would prevent the robot 100 / 110 from being able to reach inside the body workpiece 120. The alternative is to define a large number of geometric primitives that approximate the shape of the body workpiece 120 (e.g., a cylinder primitive for the windshield "A" pillar, another cylinder primitive for the door "B" pillar, etc.), which would be an unduly lengthy and time-consuming process and would still be overly conservative.
[0027] Another existing technique for interference checking in robotic motion planning uses the actual geometry of the robot arm, workpiece, and other obstacles in the form of CAD models. This technique avoids the inaccuracies of geometric primitive methods, but the computation time for interference checking calculations increases significantly for all but the simplest scenarios of the robot / obstacle workspace. Interference checking calculations using CAD models typically take too long to be practical in real-time environments where motion planning calculations must be performed continuously and rapidly.
[0028] There are other techniques for interference checking in robotic motion planning, including signed distance field techniques and axis-aligned bounding box tree techniques. However, all of these techniques are computationally intensive (and therefore slow), inaccurate due to approximations, or require some combination of very large amounts of computer memory to store the 3D position information of all components at all time steps in the motion program.
[0029] To overcome the aforementioned issues, a new robotic interferometry technique is disclosed herein that uses point sets represented as 1D indices. The disclosed point set interferometry technique provides fast computation of interference and swept volumes without the inaccuracies associated with using geometric primitives. The disclosed interferometry technique does not require storage of 3D geometry or mesh data for all positions / time steps and is fast enough to be included in real-time robotic motion planning routines.
[0030] Figure 2 is an illustration of steps in a point set method for interference checking according to an embodiment of the present disclosure, the method comprising converting object 3D points into 1D indices. In step 220, CAD models of the components of the robot 200 are provided, as well as CAD models of any potential obstacles in the workspace and a CAD model of the component being operated on. The CAD model is preferably a 3D solid model, but may also be a surface model, as is known in the art. In step 230, the CAD model is converted into 3D points. This is achieved by defining a plurality of points on and within the surface of each of a plurality of individual components. For example, the robot base component 202 may be represented by hundreds of points, and the same is true for the inner arm 204, outer arm 206, wrist component 208 and end effector 210. The number of arm components in the robot 200 may vary, and the number (density) of points per component may be selected to suit the application requirements. Again, 3D points are defined for each component individually so that the point coordinates can be updated to take into account the motion of the robot 200 (and possibly other robots in the work cell). The same is true for the workpiece points, where Figure 1A The vehicle body 120 may be moving on a conveyor belt, while Figure 1B The machine 160 may have doors that open and close. For each time step of the planned motion, the 3D points on each part are transformed into new coordinates. Steps 220 and 230 are performed during the initialization phase, which can be done "offline" before the actual point set interference check calculations are performed.
[0031] At step 240, the 3D points for each part are converted to 1D indices. Each 1D index is simply a single integer representing a grid cell in the robot work cell or workspace. Converting the 3D points to 1D indices is a two step process where the 3D point coordinates are first converted to a 3D grid space index (at 242) and then the 3D index is converted to a 1D index (at 244). At step 250, the 1D indices specifying the grid space occupancy are stored per part and per time step. For example, each of the multiple points on the end effector 210 occupies a 3D grid space index, which is converted to a 1D index, and all occupied 1D indices for the end effector 210 are stored for each time step. The same is true for each part of the robot and for all obstacles and workpieces that may be obstacles, some of which may be stationary and some of which may be moving. By storing only the occupied 1D indices, the disclosed method uses very little computer memory compared to the prior art and subsequent interference checking and swept volume calculations are very efficient. Steps 240 and 250 will be described below. Figure 3 This is discussed in detail in the discussion of .
[0032] At step 260, the occupancy 1D indices for all time steps are combined in a union operation to generate a swept volume. The swept volume can be calculated for each individual component; however, in the case of a robot, it is more common to calculate the swept volume for the entire robot. For example, the swept volume of the robot 200 can be calculated by combining the occupancy indices for the base component 202, the inner arm 204, the outer arm 206, the wrist component 208, and the end effector 210. Figure 2 Step 260 shows a simplified example of this situation. At 262, the occupied 1D indices for time step t=1 are shown, and at 264, the occupied 1D indices for time step t=2 are shown. The occupied 1D indices at 262 and 264 are for the same part or the same robot (not two different robots, and not a robot compared to the workpiece). At time step t=1, the part occupies index numbers (3, 4, 7, 8). At time step t=2, the same part occupies index numbers (7, 8, 11, 12). The union of the occupied indices from time steps t=1 and t=2 results in a total swept volume represented by (3, 4, 7, 8, 11, 12) as shown at 266. By reversing steps 230 and 240, the swept volume represented as 1D indices can be transformed back into a 3D geometric swept volume.
[0033] In step 270, the occupied 1D indices of two different components (e.g., two robots, or a robot and a workpiece) are used in an intersection operation to determine if there is interference. In the case of a dual robot system, interference between one entire robot and another entire robot is typically checked. Figure 2 A simplified example of this situation is shown in step 270. At 272, the occupied 1D indices for robot R1 are shown, and at 274, the occupied 1D indices for robot R2 are shown. The occupied 1D indices at 262 and 264 are for the same single time step. For robot R1, the occupied index numbers are (3, 4, 7, 8, 11, 12). For robot R2, the occupied index numbers are (1, 2, 3, 4, 5, 6). The intersection of the occupied indices for robots R1 and R2 results in an interference represented by the index (3, 4) as shown at 276. By reversing steps 230 and 240, the interference represented as a 1D index can be transformed back into a 3D geometric interference volume.
[0034] Figure 2 The point set interference checking method can be used in robotic motion planning applications, where the motion of a robot (or more than one robot) relative to a workpiece and obstacles is planned and evaluated before the robot performs a task. Figure 1AIn the example, the motions of robots 100 and 110 required to complete all spot welds on a car body workpiece 120 can be calculated before robots 100 / 110 actually begin welding. If an interference situation is detected between robots 100 / 110 or between one of the two robots and the workpiece 120, the planned motions can be adjusted to prevent the interference, for example by delaying the start of one of the two robots' motion sequences. Similarly, a swept volume can be used to determine whether the motions of one robot overlap with the motions of another robot over the entire motion sequence, and if the resulting overlap is undesirable, a different motion plan can be calculated.
[0035] It should be understood that Figure 2 All steps of the point set interference checking method shown are programmed as algorithms running on a computer having a processor and memory. In a preferred embodiment, the computer running the point set interference checking method is a robot controller that has access to real-time robot configuration (joint position) data and is also responsible for calculating the robot motion plan. However, other system designs are possible, for example where the computer running the point set interference checking method is a work cell controller that communicates with multiple robot controllers and also knows the position of the workpiece on the conveyor (in Figure 1A in the example) or the status of the doors and parts in the processing station (in Figure 1B In addition to the robot controller and possibly the work cell controller computer, the system may include one or more object sensors to identify obstacles moving within the work cell. In some embodiments, object sensors are not required because the robot controller and / or work cell controller knows the location of the workpiece being moved (e.g., on a conveyor) or the status of the machine being maintained (e.g., part loading / unloading status, door open / closed status).
[0036] Figure 3 According to an embodiment of the present disclosure Figure 2 An illustration of a portion of the point set interference checking method shown in , which depicts details of the steps for converting object 3D points into 1D indices. Figure 2 In step 240, the 3D points of each component are converted into 1D indices in a two-step process, where the 3D point coordinates are first converted into a 3D grid space index, and then the 3D index is converted into a 1D index. These are Figure 3 The steps are described in detail in .
[0037] In region 310, the robot(s) and any other objects that may be obstacles (such as workpieces and fixtures in the workspace) are defined as 3D points. Each component of the robot(s) and each other object's point is transformed to a position corresponding to the time step of the motion plan. For example, in a dual-robot system, the configuration (joint angles) of each robot is calculated for each time step of the motion plan, and the various components of the robots are transformed to their position and orientation in the workspace coordinates so that each point on each component can be transformed similarly. This transformation can be performed in a manner known in the art using forward kinematics calculations, for example: [xyz] = R jnt p+p jnt , where [xyz] is the updated 3D coordinate of point p, R jnt is the joint coordinate frame orientation, p is the point p in the coordinates of the joint frame, and p jn is the joint frame origin coordinate. The points on the moving parts on the conveyor can be easily updated using a simple translation transformation based on the conveyor motion. For a particular time step, the points on each part of the robot 200 and the points on the part of the workpiece 300 are in Figure 3 Two specific points 330 and 332 are shown on the robot inner arm and will be discussed below.
[0038] In region 320, each point on each component from region 310 is transferred to a 3D occupied grid space. Grid space 350 is defined in a workspace coordinate frame with origin {O}: [x0y0z0]. Grid space 350 is divided into individual 3D grid cells 352 having a size dimension u. For example, a robot workspace having a size of 1 meter in each of the x, y, and z dimensions may be divided into a grid space having a size of 200×200×200, where each cell has a size of u=5 mm. Grid space 350 is defined in a workspace coordinate frame with origin {O}: [x0y0z0]. Grid space 350 is divided into individual 3D grid cells 352 having a size dimension u. For example, a robot workspace having a size of 1 meter in each of the x, y, and z dimensions may be divided into a grid space having a size of 200×200×200, where each cell has a size of u=5 mm. Figure 3 3D cell indexes are shown in FIG370 , where each of the grids 360 , 362 , and 364 is located at a different depth in the x-direction. Each cell in grid space 350 is assigned a 3D index—a triplet of integers, where each number represents a position in the x, y, or z direction. An example of a 3D cell index is shown below in area 370 .
[0039] Based on the grid size u, points 330 and 332 on the robot inner arm are transferred to their corresponding positions in the grid space 350 as shown. Several other points (not numbered) are also shown in the grid space 350. It should be understood that every point on each of the multiple components is transferred to the grid space 350. This is typically thousands of points. To maintain clarity of the illustration, Figure 3 Only a few are shown.
[0040] After transferring the points to grid space 350, the occupied grid cells in 3D grid space 350 are identified. To the right of region 320, three grid cells (340, 342, 344) are shaded to indicate that they are occupied by parts at the time step currently being evaluated. Grid cells 340 / 342 / 344 are the cells that contain the points shown on the left.
[0041] In region 370, the occupied 3D grid cell index is identified (at 380) and then converted to a 1D index (at 390). At 380, each of the plurality of cells in grid space 350 is identified with a 3D index, as described above. Each point on each component is then assigned to a grid cell. This can be accomplished using a calculation of the form: where [ijk] is the 3D index of the grid cell corresponding to the point with coordinates (xyz) relative to the origin {O}: [x0y0z0].
[0042] For example, cell 340, which is occupied by more than one of the above points, has an index of (1, 3, 2), indicating that it is the first cell (1) in the x-direction, the third cell (3) in the y-direction, and the second cell (2) in the z-direction. Similarly, occupied cell 342 has an index of (1, 3, 3), and occupied cell 344 has an index of (1, 4, 2). All cells in grid space 350 are numbered accordingly with a 3D index, and the occupied cells are identified. Only the occupied grid cells and some other grid cells have their indices shown at 380 in the illustration.
[0043] At 390, the 3D indices of the cells of the grid space 350 are converted to 1D indices. This can be done by simply numbering the cells sequentially, incrementing the grid cell in the z direction while keeping x and y constant, then incrementing y by one cell and repeating in the z direction, and repeating this operation until the y direction is exhausted, and then the same in the x direction. In the 200×200×200 grid space example discussed above, the 3D indices would range from the values (1, 1, 1) to (200, 200, 200), and the 1D indices would range from the values 1 to 8,000,000 (=200). 3 ). In the example shown at 390, by first increasing in the z direction and then in the y direction, the visible top-level grid cells are numbered 1 to 12. The next layer down in the x direction would have 1D indices of 13-24, and so on.
[0044] At 390, cells with 1D indices of 8, 9, and 11 are shaded to indicate that they are occupied. These indices 8, 9, and 11 correspond to cells 340 / 342 / 344 indicated as occupied by points 330 and 332 in grid space 350 in region 320, as well as other points. The 1D indices of the occupied spaces (8, 9, 11) are saved as a 1D array that defines the occupancy of a particular component at a particular time step in the planned motion program. Then, as described above with respect to Figure 2 As discussed, these ID occupancy index arrays are used for swept volume and interference checking calculations (at 260 and 270, respectively).
[0045] again, Figure 3 All steps are performed for each planned time step of the robot motion. That is, first, the point coordinates of each component are updated in region 310 to reflect each time step of the planned object motion (robot component and workpiece component); then, for each object at each time step, the point coordinates are transferred to the grid space as 3D occupancy indices in region 320; finally, for each time step, the 3D occupancy indices are converted to 1D indices for each object in region 370.
[0046] As mentioned above, the 1D occupancy index array is used for the swept volume and interference check calculations (respectively Figure 2 If interference is detected, it may be desirable to visualize the interference between the robot and the other objects at their locations in the workspace. This can be accomplished by converting the 1D indices back to 3D geometry using the reverse process of step 240. The resulting interference in 3D space can be overlaid on the robot / part at the time step where the interference occurred. Similarly, the same technique can be used to convert the swept volume back to 3D geometry for visualization.
[0047] The disclosed interference checking method using a set of points represented as a 1D index is used to automatically perform interference checking for each planned robot motion path before executing the motion. In other words, the planned motion of one or more robots (for example, for a welding or spraying task) is calculated, and based on the position and motion of any obstacles in the workspace (such as other robots, moving workpieces, and stationary objects), a point set interference check calculation is performed before executing the task. If the point set interference check calculation identifies an interference, the task is not executed, the robot motion is replanned, and the point set interference check calculation is performed again.
[0048] The method described above, characterized by converting 3D points into 1D indices, has advantages over existing techniques in terms of speed and accuracy. In particular, the disclosed point set interference checking method provides faster computation time and requires less computer memory than interference checking techniques using CAD models, and provides better accuracy than interference checking techniques using geometric primitives.
[0049] Figure 4A 、 4B 4C and 4C are diagrams showing interference checking results using traditional CAD model geometry, geometric primitive approximation, and the point set technique of the present disclosure, respectively. Figure 4A 、 4B The simulations depicted in 4C all use the same robot kinematics and motions. In the three figures, only the representation of the robot arm components used in the interference check is different. The impact on the interference check results and calculation time will be discussed below.
[0050] Figure 4A Components of robot 410A are shown adjacent to components of robot 420A. Robots 410A and 420A are represented by CAD model geometry. Illustration 430 shows a close-up of component 412A (of robot 410A) and component 422A (of robot 420A). As can be seen in illustration 430, there is a small gap between component 412A and component 422A; that is, there is no interference. Figure 4A The CAD model geometry accurately represents the parts and therefore does not return false positive interferences when parts are in close proximity. However, when used in interference checking calculations, Figure 4A The CAD model geometry of a part is extremely computationally intensive. In fact, interference checking using the CAD model geometry of the part is often too slow to be used in real-time motion planning routines, where the planned path must be interference checked within about 1-2 seconds so that the robot motion can continue uninterrupted.
[0051] Figure 4BComponents of robot 410B are shown in close proximity to components of robot 420B. Robots 410B and 420B are represented by geometric primitives, such as cylinders surrounding elongated robot arms. Illustration 440 shows a close-up of component 412B (of robot 410B) and component 422B (of robot 420B). As can be seen in illustration 440, there is a small gap between the actual component 412B and component 422B; that is, there is no interference. However, component 412B is represented by geometric primitive 414B and component 422B is represented by geometric primitive 424B. At the time step shown in illustration 440, geometric primitive 414B does interfere with geometric primitive 424B. Therefore, the interference checking calculation using geometric primitives predicts interference when, in fact, no interference exists between the actual components of the robots. Although interference checking using geometric primitives provides faster calculation times than using CAD model geometry, Figure 4B It is shown how simplifications inherent in geometric primitives can lead to false positive interference case predictions.
[0052] Figure 4C Components of robot 410C are shown in close proximity to components of robot 420C. According to the disclosed techniques, robots 410C and 420C are represented by point sets. Illustration 450 shows a close-up of component 412C (of robot 410C) and component 422C (of robot 420C). As can be seen in illustration 450, there is a small gap between component 412C and component 422C; that is, there is no interference. The disclosed point set interference checking method, like Figure 4A The point set interference checking method provides interference checking calculation times that are fast enough to be used in real-time motion planning routines, where planned paths must be interference checked within approximately 1-2 seconds so that robot motion can continue without interruption.
[0053] Figures 4A-4C Depicted are the results of simulations that were all run on the same computing hardware in directly comparable tests. Figure 4A Simulating the CAD model geometry requires a lot of computing time to update the robot pose / configuration and perform interference checking at the new configuration; the calculations take too long to be used for real-time motion planning. Figure 4B Compared to CAD model geometry simulation, primitive simulation requires less computation time to update the robot pose and perform interference checking at the new configuration. Although much faster than using CAD model geometry, primitive simulation can return incorrect results, as described above. Figure 4CThe point set simulation model requires even less computation time than geometric primitive techniques, thus providing accurate interference checking results and fast computation, a combination that cannot be obtained using existing techniques.
[0054] Figure 5A yes Figure 1A Illustration of two industrial robots 100 and 110 in a configuration in which a point set interference checking method has detected a collision. Figure 5A In FIG. 1 , robots 100 and 110 each perform a spot welding task on a vehicle body 120 . Figure 5A Robots 100 and 110 are shown during their planned motions, with each robot moving on an independent path. Robot 100 has followed a tool center point path 102 from a starting point 104 to the configuration in which robot 100 is shown. Robot 110 has followed its own tool center point path to reach the configuration in which it is currently shown. At this point in the robot motion, as shown at 502, robots 100 / 110 will collide near the wrist joint and end effector. This interference condition is detected by a non-empty intersection of the 1D index sets of the two robots at a particular step in the motion plan. The ability to quickly simulate and predict interference conditions using the point set interference checking method of the present disclosure allows for the calculation and checking of revised motion plans before the robots perform their tasks.
[0055] Figure 5B is an illustration of the same two robots 100 and 110 sweeping a volume showing the overlapping area of the volume according to an embodiment of the present disclosure. Figure 5B From Figure 5A The robot 100 / 110 is shown from the opposite perspective. Figure 5B , the robots are shown in their home positions. Swept volumes 108 and 118 are computed using the techniques of the present disclosure. Swept volume 108 is the volume that is occupied at some point in the motion program of robot 100, while swept volume 118 is the volume that is occupied at some point in the motion program of robot 110. Swept volume 108 is computed by performing a union of the 1D index sets for robot 100 at all steps in the motion plan, and swept volume 118 is similarly computed for robot 110. Overlap volume 510 is the space within both swept volumes 108 and 118. While overlapping volume 510 does not necessarily indicate that a collision will occur, as robots 100 and 110 may occupy that portion of their swept volumes at different times, the presence of overlapping volume 510 is of interest to a human programmer or operator, and a decision may be made to adjust the motion programs of robots 100 and / or 110 to eliminate any overlap in their respective swept volumes. Again, the ability to quickly and accurately compute swept volumes and identify any overlap is beneficial to safe and reliable robotic motion planning.
[0056] Figure 6 600 is a flow chart of a method for point set interference checking and swept volume calculation according to an embodiment of the present disclosure. At block 602, CAD models of one or more robots and any potential obstacles are provided. Each individual component of the robot (inner arm, outer arm, end effector, etc.) is provided as a separate CAD model, where the position and orientation are referenced to the joints that attach each component to another component of the robot. Potential obstacles include fixed and / or moving objects and fixed and / or moving workpieces. At block 604, the CAD model is converted into a plurality of 3D points that define the exterior surface and some interior points on each component. Each component or assembly is typically represented by hundreds or thousands of points, where the position of each point on each component is known, allowing the motion of the point in the workcell coordinate frame to be calculated based on the robot joint motion. Providing the CAD model and converting the CAD model into a plurality of 3D points at blocks 602 and 604 is an initialization step that is performed only once at the beginning of the point set interference checking process.
[0057] At block 606, the 3D point coordinates are updated for the robot and component motions. That is, the coordinates of each point on each component of the robot are updated based on the robot joint motions (each step in the motion plan), and the coordinates of each point on the moving workpiece or obstacle are also updated based on the (planned) motions of those objects. At block 608, the 3D points on all robot components and obstacles are transferred to the 3D grid space index. Figure 3 This step is discussed in detail. In block 610, also as per Figure 3 As discussed, the 3D indices are converted to 1D indices. As a result of this step, each object is represented by a set of 1D occupancy indices for a particular planned motion step or time step. Each 1D occupancy index is a single integer representing the portion of the volume of the workspace in which the robot operates.
[0058] At block 612, a 1D index is stored as a set of each object at each time step. Figure 2 As discussed in the example shown in , a set of multiple 1D indices (each index is an integer) defines the occupancy of each object at each time step. Using the set of 1D occupancy indices from block 612, interference checks and swept volumes can be calculated.
[0059] At block 614, interference checking is performed by performing a mathematical intersection of the 1D index set of one object with the 1D index set of another object at the same time step. Figure 1B) to check the 1D occupancy index set of the robot end-effector; if the intersection of the two index sets is empty, there is no interference; if the intersection is non-empty, there is interference. Similarly, the 1D occupancy index set of an entire robot (consisting of the indices of all the arm parts of the robot) can be intersected with the 1D occupancy index set of another entire robot; the intersection will be calculated for each time step of the motion of the two robots to identify any interference at any point in the motion.
[0060] At block 616, any interfering 3D geometries identified at block 614 may be identified using Figure 2 and 3 The reverse of the illustrated process converts the 1D occupancy indices of the intersection back to 3D indices and back to 3D point coordinates to calculate. It may be desirable to convert the interference index set back to 3D geometry - including displaying the resulting 3D geometry - so that the programmer or operator can visualize the robot configuration when the interference occurs.
[0061] At block 618, the swept volume is computed by performing a union of the 1D occupancy index sets of the object (e.g., the entire robot) over all time steps of the motion program. This is also a very fast and easy computation, being simply a mathematical union of the 1D index sets over multiple time steps, where each 1D index set is a set of integers. Figure 5B The swept volumes resulting from this calculation are shown in , where swept volume 108 is for robot 100 and swept volume 118 is for robot 110 .
[0062] At block 620, the Figure 2 and 3 The 3D geometry of the swept volume calculated at block 618 is calculated by reversing the process shown in , converting the unioned 1D occupancy indices back to 3D indices, and back to 3D point coordinates. Converting the swept volume indices back to 3D geometry - including displaying the resulting 3D geometry - may be desirable so that a programmer or operator can visualize the entire motion envelope of a robot during a motion program for the robot, or to visualize whether the motion envelopes of two adjacent robots overlap. At block 622, the 3D geometry of any overlapping regions between the separate swept volumes is calculated and displayed. For example, Figure 5B The overlap volume 510 shown in , depicts the overlap between the swept volumes of robots 100 and 110. The overlap zone between the swept volumes of any two moving objects (whether robotic or otherwise) can be calculated.
[0063] again, Figure 6 All steps of the method shown are programmed as algorithms running on a computer having a processor and memory, which may be a robot controller or a workspace controller, as described above with respect to Figure 2A system for performing a point set interference checking method includes at least one robot and its corresponding robot controller, and optionally may include a work cell controller or other computer, and optionally may include one or more object sensors to detect obstacle locations.
[0064] Throughout the foregoing discussion, various computers and controllers have been described and implied. It should 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. In particular, this includes the processors in each robot controller and the optional work cell controller described above. Specifically, the processors in the robot controller and / or work cell controller are configured to perform point set interference checking techniques using 1D indexing and use the resulting interference checking information in the robot path planning calculations in the manner described throughout the foregoing disclosure.
[0065] As described above, the disclosed technique for performing robot interference checking using point sets represented as 1D indices improves the speed and accuracy of interference checking for robot path planning. The disclosed technique avoids the upfront effort and inherent inaccuracies of modeling obstacles as geometric primitives and enables rapid computation of robot-to-robot and robot-to-obstacle interference even in the presence of complex and arbitrarily shaped obstacles.
[0066] The interference checking techniques described above are discussed with respect to an articulated robot operating in a workspace with a variety of potential obstacles. The same basic techniques for converting 3D points into 1D occupancy indices can be applied more generally to any type of object for which it is desirable to check for interference before planning object motion. This more general case is discussed below in the context of a machine tool example.
[0067] Figure 7 is an illustration of a machine tool tool and a workpiece used as the first and second objects in a point set interference checking method according to an embodiment of the present disclosure. The machine tool spindle and tool holder 710 holds a cutting tool 712, which is familiar to anyone familiar with machine tools. For example, the spindle and tool holder 710 can be part of a machine tool that programmatically controls the X, Y and Z movement of the spindle and tool holder 710 so that the cutting tool 712 (and possibly other interchangeable cutting tools) performs a specified cutting task, such as milling and drilling. These types of machine tools are generally referred to as "numerically controlled", which for current technology means that the movement of the machine tool is controlled by a computer.
[0068] The cutting task is performed on a workpiece 720 that is fixed in an appropriate position (e.g., in a fixture). In a typical application, a machine controller (computing device) moves the spindle and tool holder 710 by controlling the X, Y, and Z servo motors. In this application, the orientation of the spindle and tool holder 710 remains fixed, and only the position changes. However, this application is only an example, and the technology of the present disclosure can be applied to robotic machine tools that can place the cutting tool 712 in any position and spatial orientation. Again, the machine tool cutting application is only an example of the point set interference checking technology of the present disclosure, which can be applied to any two or more objects.
[0069] Figure 7 The spindle and tool holder 710, cutting tool 712, and workpiece 720 are depicted as actual component geometries represented by CAD solid models. To perform interference checking according to the presently disclosed techniques, the CAD solid model geometry of the combined component 710 / 712 is first converted to 3D points. Similarly, the solid model of the workpiece 720 is also converted to 3D points. The conversion of the solid model to 3D points can be accomplished in any known suitable manner. Preferably, each 3D point set is a point cloud containing points within and on the surface of the object.
[0070] As previously discussed with respect to the robotic motion embodiment, the purpose of the disclosed method is to check for interference between one object and another object based on any defined position of the respective objects. This means that at least one of the respective objects can be moved to at least one position different from its initial position. Figure 7 (as well as Figure 8 and 9 ), the combined components 710 / 712 are moved according to a machine tool motion plan while the workpiece 720 remains stationary. It is emphasized that the motion of one or more moving objects does not have to be a time-based predefined motion plan. The motion of the moving objects can simply be considered as a collection of one or more motion steps (step 1, step 2, etc.). For example, when a path plan is created and evaluated for interference, the individual steps can be calculated and incrementally checked for interference. Furthermore, although a major advantage of the presently disclosed technology is the speed of the interference checking calculations using 1D indexing, and this calculation speed is extremely advantageous in real-time motion planning with respect to moving objects, the technology is equally applicable to two or more static objects.
[0071] For each motion step, the 3D coordinates of each point of the moving part are recalculated, and then the coordinates of each 3D point are converted into 3D grid space occupancy index as described above. Figure 2 and 3 In particular, Figure 2At step 240, each 3D point coordinate is converted to a 3D grid space index at 242. Each grid space has three indices (e.g., X, Y, and Z) and is indicated as occupied or unoccupied by a 3D point. Each 3D grid space index is then converted to a 1D index by assigning a sequence number while sorting the X, Y, and Z dimensions. This process is also performed in Figure 2 and 3 shown in and discussed previously.
[0072] Each of the individual 1D indices is indicated as occupied or unoccupied, and a set of occupied 1D indices is stored for each object at each motion step. The set of occupied 1D indices can then be used to calculate the interferences between the individual objects at one or more motion steps, and can also be used to calculate the swept volume of one or more objects at all motion steps. The swept volume and interferences determined from the 1D indices can be easily converted back into 3D geometry using the reverse process steps. All of this was discussed earlier in the context of robotic systems and is now more generally applied to Figure 7 two objects.
[0073] Figure 8 is calculated using the point set interference inspection method according to an embodiment of the present invention and superimposed on the fixed workpiece point Figure 7 FIG20 is an illustration of a swept volume of points of a machine tool tool. Using the above techniques, the combined component 710 / 712 (spindle and tool holder 710 and cutting tool 712) is moved through a collection of motion steps, and the resulting 3D point set of all motion steps is shown as a swept volume 810. The swept volume 810 is composed of points using a small dot font. The swept volume 810 describes a simple case of linear horizontal or lateral motion of the combined component 710 / 712, while the workpiece 720 remains fixed and is represented by a point cloud 820. The point cloud 820 is composed of points using a small triangular dot font. Of course, any motion of any component can be specified in one or more motion steps. The linear motion of the combined component 710 / 712 is merely exemplary and is used to maintain clarity of the illustrations in the accompanying drawings.
[0074] Figure 9 is calculated using the point set interference checking method according to an embodiment of the present disclosure Figure 8 Illustration of the swept volume 810 of the machine tool tool points and the workpiece point cloud 820 with the interference point sets highlighted. Figure 9 The swept volume 810 and point cloud 820 are de-emphasized in FIG, while the interference point set 930 is highlighted and shown as a dashed ellipse. The interference point set 930 is calculated by obtaining the intersection of the 1D index of the combined part 710 / 712 and the index of the workpiece part 720 at each motion step. Then, as described above, the obtained interference index set for all motion steps is converted back to 3D points, which is Figure 9 The interference point set 930 is shown in .
[0075] Figure 10 1000 is a flow chart of a method for point set interference checking and swept volume calculation for two or more objects according to an embodiment of the present disclosure. At block 1002, which is an initialization step, 3D points defining each object are provided. This is typically accomplished by converting a CAD solid model into a point cloud of each object in a known initial position. Figure 2 Step 230 depicts providing 3D points defining an object. Figure 7 In the example shown in FIG. 7 , the combined parts 710 / 712 and the workpiece part 720 are converted into 3D point representations.
[0076] At block 1004, the 3D point coordinates are updated for each object according to a motion plan comprising at least one motion step. Figure 7 In the example, the workpiece part 720 does not move, so its points do not need to be updated, while the points of the combined parts 710 / 712 are updated to new coordinates based on multiple steps in the spindle / tool motion plan. If the object environment only includes static objects (no moving objects), the motion step calculation at box 1004 is omitted. At box 1006, the 3D points of each object are converted into a 3D grid space index. As described above, the 3D grid space index set for each object is calculated and identified separately. At box 1008, the 3D index of each object is converted into a 1D index, also as described above. As a result of this step, each object is represented by a set of 1D occupancy indices for each planned motion step. Each 1D occupancy index is a single integer representing a portion of the volume of the workspace in which the respective object exists.
[0077] At block 1010, a 1D index is stored as a set of each object for each motion step. Figure 2 As discussed in the example shown in , a set of multiple 1D indices (each index is an integer) defines the occupancy of each object at each motion step. Using the set of 1D occupancy indices from block 1010, interference checks and swept volumes can be calculated.
[0078] At block 1012, an interference check is performed by performing a mathematical intersection of the 1D index set of one object with the 1D index set of the other object at the same motion step. For example, the 1D occupancy index set of the combined component 710 / 712 can be checked with the 1D index set of the workpiece 720. If the intersection of the two index sets is empty, then there is no interference; if the intersection is non-empty, then there is interference. If there is no moving object, the interference check at block 1012 is calculated for the initial position of the object. Interferences across multiple motion steps can be calculated in the same manner. Figure 7In the example of , this can be accomplished by intersecting the ID occupancy index set of the combined component 710 / 712 with the ID index set of the workpiece 720 at all motion steps.
[0079] At block 1014, the swept volume is computed by performing a union of the 1D occupancy index sets of the objects (e.g., composite components 710 / 712) for all motion steps. This is also a very fast and easy computation, being simply a mathematical union of the 1D index sets for multiple steps, where each 1D index set is a set of integers. Figure 7 In the example of , the combined components 710 / 712 describe a swept volume when they move while the workpiece 720 does not move and only occupies its initial space. If there is no moving object, there is no motion step, no swept volume, and box 1014 is skipped.
[0080] At block 1016, the 3D geometry of the interfering and / or swept volumes identified at blocks 1012 and 1014 may be calculated by converting the 1D occupancy indices (of the intersection or union) back to 3D indices and back to 3D point coordinates using the inverse of the above process. Figure 7 Example, the interference index set is converted back to 3D geometry in Figure 9 is shown as an interference point set 930, and Figure 8 The swept volume 810 occupied by the assembly 710 / 712 for all movement steps is shown in FIG.
[0081] As explained previously, before physically executing a motion step (or multiple motion steps), the execution of the Figure 10 When interference is detected in an upcoming motion step using the point set interference checking method, the machine controller can take appropriate action, such as calculating a different motion, pausing motion until the moving obstacle has been cleared from the path, etc.
[0082] again, Figure 10 All steps of the method shown in are programmed as an algorithm to be run on a computer having a processor and a memory, which may be any computer used for general case interference checking between objects, or may be a computer used for Figure 7 A system for performing a point set interference checking method includes a machine controller that controls the motion of an object and knows the positions of other objects, and optionally may include one or more sensors to detect the positions of the objects.
[0083] As described above, the disclosed technique for performing object interference checking using point sets represented as 1D indices improves the speed and accuracy of interference checking for any object environment. The disclosed technique avoids the upfront effort and inherent inaccuracies of modeling objects as geometric primitives, and enables rapid computation of inter-object interference even for complex and arbitrarily shaped objects. The technique can be applied to two or more moving objects, wherein the 3D point coordinates and 1D index of each object are updated at each motion step. The technique can also be applied to a single moving object and one or more fixed obstacles, to two or more static objects, or to any combination thereof. Most generally, it will be understood that the technique can be applied to any two or more objects, wherein at least one of the respective objects can move in at least one motion step, and wherein more objects and / or more motion steps can be accommodated in the same manner.
[0084] Evaluation of the disclosed point set interference checking technique shows that it is accurate and much more computationally efficient than existing techniques such as axis-aligned bounding box tree methods. The computational efficiency stems from the use of 1D indices for interference checking, which is much faster than computing 3D mesh volume intersections or computing interferences between actual object geometry or geometric primitives.
[0085] Although various exemplary aspects and embodiments of object interference detection techniques using point sets represented as 1D indices have been discussed above, those skilled in the art will recognize modifications, permutations, additions, and sub-combinations thereof. It is therefore intended that the appended claims and claims hereafter introduced be interpreted as including all such modifications, permutations, additions, and sub-combinations as are within their true spirit and scope.
Claims
1. A method for inter-object interference detection, the method comprising: On a computing device having a processor and a memory, creating a plurality of three-dimensional (3D) points defining a space occupied by each of two or more objects; converting the plurality of 3D points of the two or more objects into one-dimensional (1D) indices defining a workspace grid cell occupancy of each of the two or more objects; storing the 1D index as a set for each of the two or more objects; as well as Interference checking is performed by computing, on the computing device, an intersection of a 1D index set of one of the two or more objects and a 1D index set of another of the two or more objects.
2. The method according to claim 1, wherein A non-empty intersection indicates that an interference exists. 3 . The method according to claim 2 , further comprising calculating an interference volume when the interference situation exists, comprising converting the 1D index of the intersection into a 3D index, and converting the 3D index of the intersection into a 3D point.
4. The method according to claim 1, wherein The plurality of 3D points defining a space occupied by each of the two or more objects is a point cloud including points on an exterior surface and points in an interior volume.
5. The method according to claim 1, wherein Converting the plurality of 3D points into 1D indices includes converting the 3D points of each of the two or more objects into a 3D index, and converting the 3D index of each of the two or more objects into a 1D index.
6. The method according to claim 5, wherein: Converting a 3D point into a 3D index includes defining a 3D workspace grid space comprising a plurality of cells having a defined size in each grid space dimension; assigning a 3D index to each of the plurality of cells; and defining a workspace grid cell occupancy based on a position of one or more of the plurality of 3D points within the cell.
7. The method according to claim 6, wherein: Assigning a 3D index to each cell of the plurality of cells includes assigning each value in the 3D index based on a sequential position of the cell in each grid space dimension.
8. The method according to claim 5, wherein Converting the 3D index to a 1D index includes: assigning the 1D index to an integer in a sequence; traversing the first grid space dimension while keeping the second and third grid space dimensions constant, counting until completion; and recursively incrementing the second and third grid space dimensions until all 3D indices are assigned 1D indices.
9. The method according to claim 1, further comprising: Before converting the plurality of 3D points of the two or more objects into 1D indices, coordinates of the plurality of 3D points are updated based on a motion step in which at least one of the two or more objects moves to a new position.
10. The method according to claim 9, further comprising: The coordinates of the plurality of 3D points are updated and the interference check is performed for one or more additional motion steps.
11. The method according to claim 10, further comprising: computing a swept volume by computing, on the computing device, a union of 1D index sets of at least one of the two or more objects for all motion steps, The 1D indices of the swept volume are converted to 3D indices, and the 3D indices of the swept volume are converted to 3D points.
12. A method for inter-object interference detection, the method comprising: On a computing device having a processor and a memory, creating a plurality of three-dimensional (3D) points defining a space occupied by each of two or more objects; updating coordinates of the plurality of 3D points based on a series of motion steps in which at least one of the two or more objects moves to a different location; converting the plurality of 3D points of the two or more objects into one-dimensional (1D) indices defining a workspace grid cell occupancy of each of the two or more objects with respect to each motion step in the series of motion steps; storing the 1D index as a set for each of the two or more objects for each motion step of the plurality of motion steps; as well as Interference checking is performed by computing an intersection of a 1D index set of one of the two or more objects and a 1D index set of another of the two or more objects at each motion step in the series of motion steps, wherein a non-empty intersection indicates that an interference situation exists.
13. The method according to claim 12, further comprising: When an interference condition exists, the series of motion steps is recalculated to alleviate the interference condition.
14. An object interference detection system comprising: Two or more objects in the workspace; as well as A computing device having a processor and a memory, the computing device being configured to perform a plurality of steps comprising: creating a plurality of three-dimensional (3D) points defining a space occupied by each of the two or more objects; converting the plurality of 3D points of the two or more objects into one-dimensional (1D) indices defining a workspace grid cell occupancy of each of the two or more objects; storing the 1D index as a set for each of the two or more objects; and Interference checking is performed by computing an intersection of a 1D index set of one of the two or more objects with a 1D index set of another of the two or more objects.
15. The system of claim 14, further comprising: When the interference situation exists, the calculation device calculates an interference volume, including converting the 1D index of the intersection into a 3D index, and converting the 3D index of the intersection into a 3D point.
16. The system of claim 14, wherein: The plurality of 3D points defining a space occupied by each of the two or more objects is a point cloud including points on an exterior surface and points in an interior volume.
17. The system of claim 14, wherein: Converting the plurality of 3D points into 1D indices includes converting the 3D points of each of the two or more objects into a 3D index, and converting the 3D index of each of the two or more objects into a 1D index.
18. The system according to claim 17, wherein: Converting a 3D point into a 3D index includes defining a 3D workspace grid space comprising a plurality of cells having a defined size in each grid space dimension; assigning a 3D index to each of the plurality of cells; and defining a workspace grid cell occupancy based on a position of one or more of the plurality of 3D points within the cell.
19. The system according to claim 18, wherein: Assigning a 3D index to each cell of the plurality of cells includes assigning each value in the 3D index based on a sequential position of the cell in each grid space dimension.
20. The system of claim 17, wherein: Converting the 3D index to a 1D index includes: assigning the 1D index to an integer in a sequence; traversing the first grid space dimension while keeping the second and third grid space dimensions constant, counting until completion; and recursively incrementing the second and third grid space dimensions until all 3D indices are assigned 1D indices.
21. The system of claim 14, further comprising: Before converting the plurality of 3D points of the two or more objects into 1D indices, coordinates of the plurality of 3D points are updated based on a planned motion step in which at least one of the two or more objects moves to a new position.
22. The system of claim 21, further comprising: When an interference situation exists, the calculation device recalculates the planned motion steps to alleviate the interference situation.
23. The system of claim 22, further comprising: The computing device sends a motion command to the machine, causing the at least one of the two or more objects to move according to the planned motion steps.
24. The system of claim 21, further comprising: The coordinates of the plurality of 3D points are updated by the computing device, and the interference check is performed for one or more additional planned motion steps.
25. The system of claim 24, further comprising: A swept volume is calculated by calculating, by the computing device, a union of 1D index sets of at least one of the two or more objects for all motion steps, converting the 1D index of the swept volume into a 3D index, and converting the 3D index of the swept volume into a 3D point.
26. The system of claim 14, further comprising one or more object sensors that provide signals to the computing device defining a position of one or more of the two or more objects in the workspace.
Citation Information
Patent Citations
Point set interference check
US11878424B2
Point set interference check method and system
US20240123618A1