Control program creation device, robot system, and control program creation method

The control program creation device automates the identification and merging of interference areas between robots, generating readable programs with integrated interlocks to prevent interference during steady and non-steady operations, addressing the complexity and risk of manual interlock settings in existing technologies.

JP2026031058APending Publication Date: 2026-02-24HITACHI AUTOM
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024134354
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-09
Publication Date
2026-02-24

AI Technical Summary

Technical Problem

Existing robot programs require manual setting of interlocks for non-steady-state operations, leading to complex and difficult-to-read programs, especially when handled by unskilled workers, and increasing the risk of interference accidents.

Method used

A control program creation device that automatically identifies interference areas between multiple robots, merges these areas to improve readability, and sets interlocks to prevent interference during both steady and non-steady operations, using a processor and storage unit to analyze robot models and trajectories, and generate a control program with integrated interlock settings.

Benefits of technology

The solution generates highly readable robot programs that minimize interlock descriptions while effectively preventing interference, reducing the risk of accidents and operational costs by automating the interlock setting process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026031058000001_ABST
    Figure 2026031058000001_ABST
Patent Text Reader

Abstract

A robot program in which a large number of interlock settings are made to prevent all interference including interference during non-steady operation is generally complicated in description, and readability is reduced.SOLUTION: A control program creation device comprising a processor and a storage unit, wherein the processor specifies a plurality of interference areas including one or more sets of postures in which a first robot and a second robot interfere with each other, and specifies a third interference area that is a continuous area including a first interference area, a second interference area different from the first interference area, and at least one set of postures not included in any of the plurality of interference areas among the plurality of interference areas, A control program including a command for avoiding the set of postures corresponding to the third interference area is created as a control program for the first robot and the second robot.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to the creation of a control program for a robot, and to a robot controlled by the created control program. [Background technology]

[0002] In production facilities where multiple industrial robots are in operation, interlocks are set up in the robot programs created for each robot that stipulate each robot's operation in order to prevent interference or collisions between the robots. Interlock settings must prevent interference not only when the production facility is operating normally and all robots are operating without time delay (hereinafter referred to as "steady operation"), but also when the production facility is not operating normally and at least one robot is stopped or operating with a time delay (hereinafter referred to as "non-steady operation").

[0003] Specific examples of non-steady state operations include operating each robot individually to check their operation immediately after starting up production equipment, or operating a specific robot individually to return it to its original position after an emergency shutdown of production equipment.Non-steady state operations can occur in a variety of patterns depending on which robot stops or is delayed, and even the amount of time delay, so writing a robot program that takes all of these patterns into account and sets up interlocks is usually cumbersome, leading to reduced readability.

[0004] Since robot programs are read and written by many people who operate production equipment, they function as an interface for robot control, and it is common for other people to read, understand, and make minor corrections to a robot program written by someone else. For this reason, a decrease in the readability of robot programs has been an issue, leading to increased operating costs for robot programs and interference accidents caused by mistakes in correcting robot programs when renovating production equipment.

[0005] Japanese Patent Laid-Open Publication No. 2016-190315 (Patent Document 1) is a background technology in this technical field. This publication states, "We provide a technology to support the creation of a control program for causing multiple industrial robots to work in cooperation. In a program creation support device that supports the creation of a control program for controlling multiple robots to work in cooperation with each other, a trajectory acquisition unit acquires a trajectory of movement of each of the multiple robots during work. A collision analysis unit analyzes, based on the trajectories acquired by the trajectory acquisition unit, whether or not there has been a collision or near-miss between the two robots, for each pair of two different robots from the multiple robots. An interlock setting unit sets an interlock to prevent collisions and near-misses between the two robots, based on the analysis results of the collision analysis unit. A notification unit notifies the interlock set by the interlock setting unit, for each pair of two robots." [Prior art documents] [Patent documents]

[0006] [Patent Document 1] JP 2016-190315 A Summary of the Invention [Problem to be solved by the invention]

[0007] In Patent Document 1, with the aim of supporting workers when setting interlocks, sets of interfering postures of multiple robots are identified, including not only steady-state operation but also non-steady-state operation, and the interference information is displayed in the form of a matrix for each set of two robots. However, the method in Patent Document 1 requires the worker to determine where in the robot program an interlock should be set based on the identified interference information for each, and if an unskilled worker handles this, there is a problem that a complicated, difficult-to-read robot program will be created in which an interlock is set one by one for each interference. [Means for solving the problem]

[0008] In order to solve at least one of the above problems, for example, the configuration described in the claims is adopted. The present application includes multiple means for solving the above problems, and one example thereof is a control program creation device including a processor and a storage unit, wherein the storage unit stores robot model information indicating the arrangement, shape, and axis configuration of multiple robots, and robot trajectory information indicating trajectories of the multiple robots, and the processor identifies multiple interference areas each consisting of one or more pairs of poses in which the first robot and the second robot interfere with each other by comparing all postures in the trajectory of a first robot with all postures in the trajectory of a second robot based on the robot model information and the robot trajectory information, identifies a third interference area among the multiple interference areas as a continuous area including the first interference area, a second interference area different from the first interference area, and at least one pair of poses not included in any of the multiple interference areas, and creates a control program for the first robot and the second robot including an instruction to avoid the pair of poses corresponding to the third interference area. [Effects of the Invention]

[0009] According to one aspect of the present invention, it is possible to automatically generate highly readable robot programs that minimize the description of interlock settings while preventing interference between multiple robots not only during steady-state operation but also during non-steady-state operation.

[0010] Problems, configurations, and effects other than those described above will become apparent from the following description of the embodiments. [Brief explanation of the drawings]

[0011] [Figure 1] FIG. 1 is a block diagram showing an example of the configuration of a control program creating device. [Figure 2] 10 is a flowchart illustrating an example of processing executed by the control program creating device. [Figure 3]FIG. 2 is an explanatory diagram illustrating an example of robot model information stored in a robot model information storage unit. [Figure 4] FIG. 2 is an explanatory diagram showing an example of a table configuration of robot trajectory information stored in a robot trajectory information storage unit. [Figure 5] FIG. 2 is an explanatory diagram showing an example of a table configuration of robot program information stored in a robot program information storage unit. [Figure 6] 10 is a flowchart illustrating an example of an interference region calculation process executed by an interference region calculation unit. [Figure 7] 10 is an explanatory diagram showing an example of an interference matrix initialized by an interference region calculation unit; FIG. [Figure 8] 10 is an explanatory diagram showing an example of an interference matrix created by an interference region calculation unit. FIG. [Figure 9] 10 is an explanatory diagram showing an example in which attention is focused on a specific interference in the interference matrix created by the interference region calculation unit. FIG. [Figure 10] 10 is an explanatory diagram showing an example of an interference region extracted from an interference matrix created by an interference region calculation unit; FIG. [Figure 11] 10A and 10B are explanatory diagrams showing an example of an interference region expansion process performed by an interference region calculation unit; [Figure 12] 10A and 10B are explanatory diagrams showing an example of an interference region expansion process performed by an interference region calculation unit; [Figure 13] 10 is a flowchart illustrating an example of an interference region merging process executed by an interference region merging unit. [Figure 14] FIG. 10 is an explanatory diagram showing an example of a set of interference regions having an inclusion relationship. [Figure 15] FIG. 10 is an explanatory diagram showing an example of the effective area of ​​one interference area of ​​a pair of interference areas having an inclusion relationship; [Figure 16] FIG. 10 is an explanatory diagram showing an example of the effective area of ​​the other interference area in a pair of interference areas having an inclusion relationship; [Figure 17] FIG. 10 is an explanatory diagram showing an example of a merge process for interference regions that do not have an inclusion relationship; [Figure 18] 10 is a flowchart illustrating an example of an interlock setting process executed by an interlock setting unit. [Figure 19] FIG. 10 is an explanatory diagram showing an example of an interlock insertion location when interference regions that do not have an inclusion relationship are merged. [Figure 20] FIG. 10 is an explanatory diagram showing an example of a robot movement path based on an interlock-related command when interference areas that do not have an inclusion relationship are merged. [Figure 21] FIG. 10 is an explanatory diagram showing an example of an interlock insertion location when interference regions that do not have an inclusion relationship are not merged. [Figure 22] FIG. 10 is an explanatory diagram showing an example of a robot movement path based on an interlock-related command in a case where interference areas that do not have an inclusion relationship are not merged. [Figure 23] FIG. 10 is an explanatory diagram showing an example of an interlock insertion location and a robot movement path based on the interlock-related command when interference areas having an inclusion relationship are not merged. [Figure 24] FIG. 10 is an explanatory diagram showing an example of an interlock insertion location when interference areas having an inclusion relationship are merged and an example of a robot movement path based on the interlock-related command. DETAILED DESCRIPTION OF THE INVENTION

[0012] The control program creation device according to the present invention will be described below based on an embodiment with reference to the drawings. In the examples described below, the same or similar components or functions are designated by the same reference numerals, and redundant description will be omitted.

[0013] In this embodiment, an example of a control program creating device that is the basic embodiment of the present invention will be described using a two-axis robot arm as an example.

[0014] [System Configuration] FIG. 1 is a block diagram showing an example of the configuration of a control program creating device 100. As shown in FIG.

[0015] The control program creation device 100 can be configured as a general computer (such as a PC (Personal Computer), a server, etc.), and realizes the characteristic processing functions of this embodiment (each processing unit of the calculation unit 120) by software program processing, for example.

[0016] The control program creating device 100 includes an input unit 110, a calculation unit 120, an output unit 130, a storage unit 140, and the like.

[0017] The calculation unit 120 is configured by known elements such as a CPU (Central Processing Unit), RAM (Random Access Memory), ROM (Read Only Memory), etc. The calculation unit 120 is a part that performs processing to realize the characteristic functions of the present invention, and includes an interference region calculation unit 121, an interference region merging unit 122, and an interlock setting unit 123.

[0018] The memory unit 140 is composed of known elements such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive), and is configured to have memory units or corresponding data information (e.g., databases or tables) including a robot model information memory unit 141, a robot trajectory information memory unit 142, and a robot program information memory unit 143.

[0019] The robot model information storage unit 141 stores robot model information 1411 for the entire facility. The robot model information 1411 is input information entered by the input unit 110, and is made up of placement information for all robots, and shape information for the links and configuration information for the axes of all robots.

[0020] The robot trajectory information storage unit 142 stores robot trajectory information 1421. The robot trajectory information 1421 is input information entered by the input unit 110, and is information indicating the target trajectories that are desired to be taken by each of all robots constituting the facility. As will be described later, the robot trajectory information 1421 is time-series data of the target posture that is desired to be taken by the robot, i.e., a set of all axis values. Note that the target posture does not necessarily have to be a set of all axis values, as long as it can uniquely identify the posture of the robot, and may be, for example, the coordinates of the robot's end effector.

[0021] The robot program information storage unit 143 stores robot program information 1431, which is output information output by the output unit .

[0022] The control program creation device 100 shown in Fig. 1 is connected to a robot control device 150 that controls a robot 160. The robot 160 includes robot A and robot B, each of which is a two-axis robot. Fig. 1 shows only the arm portion of each robot, and does not show other parts such as motors that drive the joints and hands or tools at the ends of the arms. Robot A and robot B shown in Fig. 1 are each two-axis robots, but this is just an example, and the type of robot is not limited thereto.

[0023] The robot control device 150 is a computer including, for example, a processor, a memory, and an interface with the outside, and controls the robot 160 according to a robot program. This robot program may be one created by the control program creation device 100, or may be one that has been manually modified by a user. The robot control device 150 may be connected to the control program creation device 100 via a wired or wireless network or the like, and may acquire the robot program from the control program creation device 100 via the network or the like. Alternatively, the robot control device 150 may acquire the robot program from the control program creation device 100 via a storage medium such as a USB memory. In the latter case, the robot control device 150 does not have to be connected to the control program creation device 100.

[0024] Furthermore, the robot control device 150 may be integrated with the robot 160, or may be integrated with the control program creating device 100. Alternatively, the control program creating device 100, robot control device 150, and robot 160 may all be configured as an integrated unit.

[0025] Although two robots are shown in Figure 1, in reality, three or more robots may be installed in positions where they may interfere with each other. In such cases, the processing described below is executed for all combinations of two robots among the three or more robots.

[0026] [flowchart] FIG. 2 is a flowchart showing an example of processing executed by the control program creating device 100.

[0027] (S110) Based on the information input by the user, the input unit 110 stores robot model information 1411 in the robot model information storage unit 141 and robot trajectory information 1421 in the robot trajectory information storage unit 142. Note that although it is assumed here that the above information is input by the user, it is also possible to specify the information using information that has already been stored, including information input in the past.

[0028] (S121) The interference region calculation unit 121 calculates interference for all pairs of robots (X, Y) ((A, B) in the example of FIG. 1) not only during steady operation but also during unsteady operation. The calculated interference is stored in an interference matrix in which the time-series information of the posture that constitutes the trajectory information of robot X is represented on the first coordinate axis and the time-series information of the posture that constitutes the trajectory information of robot Y is represented on the second coordinate axis, and a set of consecutive interferences on the interference matrix is ​​extracted as a group of interference regions. Details of this step S121 will be described later (see FIGS. 6 to 12).

[0029] (S122) The interference region merging unit 122 performs merging processing on the interference matrix for a pair of interference regions (α, β) that is determined to be particularly effective in improving the readability of the robot program. Details of step S122 will be described later (see FIGS. 13 to 17).

[0030] (S123) The interlock setting unit 123 creates robot program information in which an interlock is set to prevent interference between robots, based on the interference area information stored in the interference matrix, and stores the information in the robot program information storage unit 143. Details of this step S123 will be described later (see FIGS. 18 to 24).

[0031] (S130) The output unit 130 outputs the robot program information 1431 stored in the robot program information storage unit 143.

[0032] [Robot model information] FIG. 3 is an explanatory diagram showing an example of the robot model information 1411 stored in the robot model information storage unit 141. As shown in FIG.

[0033] Robot model information 1411 consists of the layout information of all robots, and the shape information of the links and axis configuration information of all robots. Ordinary robot equipment includes static interfering objects other than the robots, such as the workpieces that the robots work on, the jig stand that supports the workpieces, and the robot stand that supports the robots, but this device aims to create a robot program that avoids dynamic interference between robots by inputting robot trajectory information 1421 (see Figure 3), in which avoidance of these static interfering objects has already been realized. Therefore, the robot model information does not necessarily need to include static interfering objects such as the workpieces, jigs, and robot stands.

[0034] In general, to prevent interference between robots, a trajectory planning approach—that is, the generation of the robot trajectory itself—is often used, which requires the input of static interference objects. The present invention is effective against interference between robots that cannot be avoided with this approach. However, as mentioned above, because robot programs are interfaces that are read and written by many people, it is desirable for the difference in the modifications to be small for readability reasons. It is not desirable to regenerate a new trajectory using the trajectory planning approach and rewrite the entire robot program. Furthermore, if a new trajectory is generated using the trajectory planning approach, all safety confirmation tests must be redone, increasing on-site labor costs. For these two reasons, when upgrading equipment, programs are rarely rewritten from scratch in the field, and existing programs are often manually modified.

[0035] In the following, this embodiment will be described using two two-axis robots, robot A and robot B, as an example, as shown in the figure. If robot 160 includes robot C (not shown) in addition to robot A and robot B, the same processing as described below is performed for all pairs of robots (X, Y) = (A, B), (B, C), and (C, A). If there are more robots, the processing is similarly performed for all pairs of two robots.

[0036] [Robot trajectory information] FIG. 4 is an explanatory diagram showing an example of the table configuration of the robot trajectory information 1421 stored in the robot trajectory information storage unit 142. As shown in FIG.

[0037] The table items include a robot name 1422, a posture ID 1423, and each axis value 1424. Each axis value 1424 represents the posture that constitutes the robot trajectory as a set of each axis value (a set of joint angles J1 and J2 for each axis in the examples of Figs. 3 and 4). Fig. 1425 and Fig. 1426 show the results of illustrating the robot trajectory information of robot A and robot B, respectively, using the robot model information 1411, and each posture of the trajectory of robot A is P A (i), each posture of the trajectory of robot B is PB Here, i is the ID value that indicates the time series order of each trajectory information. In other words, the posture of each robot transitions in the order of the i value. For example, if the posture of robot A is P A When (i) is true, the next possible posture is P A Only (i+1).

[0038] [Robot program information] FIG. 5 is an explanatory diagram showing an example of a table configuration of the robot program information 1431 stored in the robot program information storage unit 143.

[0039] The robot program information 1431 corresponds to the output of the control program creating device 100 of this embodiment, and comprises a robot name 1432 , a command type 1433 , a posture ID 1434 , each axis value 1435 , a partner name 1436 , and an interference area name 1437 .

[0040] The command type 1433 indicates the type of command that is a component of the robot program, and is specified as one of an operation command for moving the robot toward a specified target posture, an intrusion notification command to notify the other party of the robot's own intrusion into a certain interference area and prevent the other party from invading, an other party's exit standby command for the robot to wait until the other party exits a certain interference area, and an exit notification command to notify the other party that the robot has exited a certain interference area and allow the other party to enter.

[0041] Among these, the commands related to interlock are the command to notify the other robot of entry, the command to wait for the other robot to leave, and the command to notify the other robot of exit. The term "other robot" refers to the other robot in the pair of robots in question. For example, in the robot program for controlling robot A of the robots 160 shown in Figure 1, the "other robot" refers to robot B.

[0042] For operation commands, a posture ID 1434 for storing the target posture and values ​​of each axis value 1435 are stored. On the other hand, for commands related to interlock, a partner name 1436 for specifying the partner robot that is the target of the command and an interference area name 1437 for specifying the target interference area are stored.

[0043] In order to improve the readability of the robot program, the interference area name 1437 represents the history of merging by notating the interference area obtained by merging interference area 1 and interference area 2 identified by the control program creation device 100 as interference area 1+2.

[0044] The robot program information 1431 shown in Fig. 5 is an example of a robot program created by inserting an interlock as shown in Fig. 20 when interference area 1 and interference area 2 shown in Fig. 10, which will be described later, are merged to form interference area 1+2 as shown in Fig. 17. The details of the merging and interlock insertion processes will be described later.

[0045] It should be noted that the partner name 1436 and the interference area name 1437 in the robot program information 1431 are not essential for the program that controls the robot 160. Therefore, the program that the control program creation device 100 outputs to the robot control device 150 does not need to include this information. However, since it is effective from the viewpoint of improving readability, it is desirable to output this information to the user (especially to a person who is trying to modify the robot program).

[0046] In particular, a person reading a robot program based on merged interference areas may wonder why even movement commands for non-interfering postures are included within the interference area. Therefore, it is desirable to display a merge history that explains the reason. The example in Figure 5 clearly shows that interference area 1, interference area 2, and the non-interference area between them (see Figure 10, described below) are treated as a single interference area 1+2 through the merge process. Furthermore, it clearly shows that movement commands for postures within interference area 1+2 and interlock-related commands corresponding to interference area 1+2 correspond to interference area 1+2. This type of information is not necessarily included in current robot programs; it is the kind of information that is sometimes included as comments according to the program creator's ideas. According to this embodiment, the above information is automatically specified in the robot program. Therefore, the relationship between the interference area and the interlock insertion location can be clearly expressed through the concept of merging, regardless of the person involved, and this information can be automatically generated without omission.

[0047] [Interference area calculation process] Fig. 6 is a flowchart showing an example of the interference region calculation process executed by the interference region calculation unit 121. This process is executed in S121 in Fig. 2. This flowchart will be explained below.

[0048] (S1211) The interference region calculation unit 121 lists all pairs of two robots (X, Y) among all robots stored in the robot model information 1411.

[0049] (S1212) The interference region calculation unit 121 performs a loop calculation of the processes from S1213 to S1218 for all the pairs (X, Y) of robots that have been listed.

[0050] (S1213) The interference region calculation unit 121 calculates the interference matrix M storing the interference information of the pair (X, Y). XY is initialized based on the number of postures of the trajectories of robot X and robot Y stored in robot trajectory information 1421. In subsequent processing, the presence or absence of interference for each square is stored, so at the time of initialization, all squares are set to be free of interference.

[0051] 7 is an explanatory diagram showing an example of an interference matrix initialized by the interference region calculation unit 121. In this example, ten postures (i.e., P A (1) to P A (10)) is the first coordinate axis, and the 10 postures that make up the trajectory information of robot B (i.e., P B (1) to P B (10)) is the second coordinate axis, and the 10 × 10 interference matrix M AB This is an example of initializing the following. In the following, as shown in the figure, cells without interference are shown as blank cells.

[0052] (S1214) The interference region calculation unit 121 calculates all the postures P X For (i), the processing from S1215 to S1216 is performed in a loop.

[0053] (S1215) The interference region calculation unit 121 calculates all the postures P Y For (j), the process of S1216 is looped.

[0054] (S1216) The interference region calculation unit 121 calculates the posture P X (i) is given to robot Y in posture P Y (j) are simultaneously taken, the interference between the robots is calculated, and the presence or absence of interference is expressed as an interference matrix M XY Store it in the (i, j) square.

[0055] FIG. 8 is an explanatory diagram showing an example of an interference matrix created by the interference region calculation unit 121. As shown in FIG.

[0056] In this example, the interference region calculation unit 121 completes the above-mentioned processes from S1214 to S1216 and creates the interference matrix M AB In the following, the squares where interference occurs are shown as black squares, as shown in Figure 8. In the example of Figure 8, the posture P A (2), P A (3), P A (4) and the posture P of robot BB (4), P B (5), P B (6) and (7) are calculated to have interference. A (6), P A (7) and the posture P of robot B B (5), P B All combinations with (6) are also calculated to have interference.

[0057] In this way, the interference matrix is ​​a mapping of pairs of poses at which interference occurs between the two robots onto a two-dimensional space that represents all pairs of poses in the order of appearance in the trajectory of one robot and poses in the order of appearance in the trajectory of the other robot.

[0058] FIG. 9 is an explanatory diagram showing an example in which attention is focused on a specific interference in the interference matrix created by the interference region calculation unit 121.

[0059] Specifically, this example uses the interference matrix M shown in FIG. AB Among them, robot A has posture P A (2) During steady-state operation of the production facility, robot A is in posture P A At the timing of (2), robot B takes posture P B If (2) is taken, the posture of robot A will be P A (2) and the calculated pose P of robot B that interferes with B (4), P B (5), P B (6) However, during unsteady operation, for example, when robot A is in posture P A (2) While stopped, the posture of robot B is P B (3), P B Interference can occur if the timing of the robot's actions is off, such as when the robots sequentially transition to (4).

[0060] For this reason, calculating the presence or absence of interference for all combinations of all postures that make up the trajectory without considering operation timing, as explained in the process above, is necessary to prevent interference during non-steady operation in the robot program created in subsequent processes.Furthermore, in order to improve the outlook for subsequent processes, it is important to handle interference, including during non-steady operation, in an interference matrix that can comprehensively display the difference in operation timing for the pair of two robots (X, Y).

[0061] (S1217) The interference region calculation unit 121 calculates the interference matrix M XY A set of one or more consecutive posture pairs is extracted as a single interference region.

[0062] FIG. 10 is an explanatory diagram showing an example of an interference region extracted from the interference matrix created by the interference region calculation unit 121. As shown in FIG.

[0063] This example uses the interference matrix M shown in Figure 8 AB As a result, two interference areas, interference area 1 and interference area 2, are extracted. In this example, interference area 1 is the area where robot A's posture P A (2)~P A (4) and the posture P of robot B B (4)~P B (6) (i.e., a set of nine consecutive postures where interference occurs). On the other hand, interference area 2 is the posture P A (6)~P A (7) and the posture P of robot B B (5)~P B This is a compilation of all combinations with (6) (i.e., sets of postures in which four consecutive interferences occur).

[0064] On the other hand, the interference region 1 and the interference region 2 are separated by one or more pairs of postures where no interference occurs, and are not continuous. In the example of FIG. 10, the posture P A (5) and posture P B Paired with (5), posture PA (5) and posture P B The pair with (6) is sandwiched between them, so they are not consecutive.

[0065] In the subsequent processing, an interlock is set so that the robot avoids all of the extracted interference areas, but at this time, the interference area may be expanded in order to avoid interference more safely.

[0066] 11 and 12 are explanatory diagrams showing an example of the interference region expansion process performed by the interference region calculation unit 121. FIG.

[0067] Specifically, Fig. 11 shows an example of the interference region before expansion, and Fig. 12 shows an example of the interference region after expansion. For the sake of explanation, Figs. 11 and 12 show examples different from those shown in Figs. 8 to 10.

[0068] In the example in Figure 11, P A (3)~P A (4) and P B (3)~P B All combinations with (4) are in the interference region. A (3)~P A (4) and P B (3)~P B This shows that interference actually occurred in all combinations with (4), and that no interference occurred in other combinations.

[0069] In contrast, in the example of Figure 12, P A (2) and P B (2)~P B All combinations with (5), P A (3) and P B (2), P B All combinations with (5), P A (4) and P B (2), P B All combinations with (5) and P A (5) and P B (2)~P BAll combinations with (5) are newly added to the interference region (i.e., the interference region is expanded to include the region adjacent to the original interference region). This indicates that the newly added interference region was calculated as not actually causing interference, but was added to the interference region because it was close to the region where interference actually occurs.

[0070] In this way, by carrying out subsequent processing on the expanded interference area, it is possible to avoid a situation in which a robot passes near the interference area, i.e., the robots come close to each other without interfering with each other.

[0071] [Interference area merging process] Fig. 13 is a flowchart showing an example of interference region merging processing executed by the interference region merging unit 122. This processing is executed in S122 in Fig. 2. This flowchart will be described below.

[0072] (S1221) The interference region merging unit 122 merges all the extracted interference matrices M XY The processing from S1222 to S1225 is looped for the above.

[0073] (S1222) The interference area merging unit 122 lists all pairs of two interference areas (α, β) from among all the calculated interference areas. In the example of Fig. 10 described above, the pair (1, 2) of interference area 1 and interference area 2 is listed, and in the example of Fig. 14 described below, the pair (3, 4) of interference area 3 and interference area 4 is listed.

[0074] (S1223) The interference region merging unit 122 performs a loop operation of the processes from S1224 to S1225 for all pairs of listed interference regions (α, β).

[0075] (S1224) The interference area merge unit 122 determines whether there is an inclusion relationship between the effective area of ​​interference area α and the effective area of ​​interference area β, and if there is an inclusion relationship (S1224: Yes), proceeds to S1225, and if there is no inclusion relationship (S1224: No), continues the loop calculation of S1223.

[0076] Here, the effective area is the smallest rectangle that contains one or more interference areas on the interference matrix. The reason for defining the effective area in this way is that the simultaneous operation of multiple robots by a robot program with interlocks takes a path that avoids the smallest rectangle that contains the interference area on the interference matrix, rather than the interference area itself; more details will be given later.

[0077] FIG. 14 is an explanatory diagram showing an example of a set of interference regions having an inclusion relationship.

[0078] FIG. 15 is an explanatory diagram showing an example of the effective area of ​​one interference area of ​​a pair of interference areas having an inclusion relationship.

[0079] FIG. 16 is an explanatory diagram showing an example of the effective area of ​​the other interference area in a pair of interference areas having an inclusion relationship.

[0080] As shown in FIG. 14, the interference area 3 is P X (2) and P Y (2)~P Y All combinations with (5) and P X (3)~P X (5) and P Y The effective area of ​​the interference area 3 is the area that combines all the combinations of (5) and (6), and is not rectangular. The effective area of ​​the interference area 3 is the shaded area shown in FIG. X (3)~P X (5) and P Y (3)~P Y (5) is the entire rectangle, including all combinations with it.

[0081] On the other hand, interference area 4 is P X (4) and P Y 14 and 15, it can be seen that the effective area of ​​interference area 3 includes the effective area of ​​interference area 4.

[0082] In other words, P is the section of the trajectory of robot X that corresponds to the interference area 3.X (2)~P X (5) is the section of the posture of robot X that corresponds to interference area 4. X (4) and is a section of the pose of the trajectory of robot Y that corresponds to interference area 3. Y (2)~P Y (5) is the section of the posture of robot Y that corresponds to interference area 4. X (3) is included.

[0083] (S1225) If the determination in S1224 is Yes, the interference area merging unit 122 merges interference area α and interference area β. FIG. 16 shows interference area 3+4, which is the result of merging interference area 3 and interference area 4 shown in FIG. 14. Because interference area 3 encompasses interference area 4, interference area 3+4 after merging is the same as the effective area of ​​interference area 3. Therefore, in the simultaneous operation of multiple robots that take a path that avoids the effective area of ​​the interference areas on the interference matrix, the path taken before and after the merging of the interference areas remains unchanged, and the overall cycle time also remains unchanged. Therefore, there is an advantage in that the number of interlock descriptions in the robot program is reduced and readability is improved, without the disadvantage of an increase in cycle time due to merging. Details of this feature will be described later (see FIGS. 23 and 24).

[0084] In the above example, the merge process is performed on a pair of interference areas that have an inclusion relationship with the valid area, but the target of the merge process does not need to be limited to a pair of interference areas that have an inclusion relationship. An example of this will be described with reference to FIG.

[0085] FIG. 17 is an explanatory diagram showing an example of merging processing for interference regions that do not have an inclusion relationship.

[0086] This example shows the result of merging a pair of interference areas that do not have an inclusion relationship, as shown in Figure 10. If interference area 1 and interference area 2 shown in Figure 10 are treated as a single merged interference area, the effective area is a rectangle including the shaded area shown in Figure 17. That is, P A (2)~P A(7) and P B (4)~P B The rectangular area that combines all the combinations of (6) and (7) becomes the effective area. This is the original interference area 1 and interference area 2 plus the shaded area, i.e., P A (5) and P B (4)~P B All combinations with (6) and P A (6)~P A (7) and P B (4) is added to the area consisting of all combinations.

[0087] In other words, P is a section of the trajectory of robot A in which the posture corresponds to at least one of interference area 1 and interference area 2. A (2)~P A (4) and P A (6)~P A (7) and the section P between them, which is a section of postures that does not correspond to either interference region 1 or interference region 2. A (5) and the posture interval P A (2)~P A Similarly, P (7) is a section of the trajectory of robot B that corresponds to at least one of interference area 1 and interference area 2. B (4)~P B (6) and a posture section P that includes a posture section that does not correspond to either interference region 1 or interference region 2 (which does not exist in the example of FIG. 17). B (4)~P B (6) is identified. Then, the identified P A (2)~P A (7) and P B (4)~P B An interlock statement is inserted to avoid all posture pairs with (6).

[0088] As a result, for example, if the posture of robot B is P B (4) Before reaching the target, the posture of robot A is P A When (2) is reached, robot B moves to P B (4) The following postures cannot be taken, and P B(3) Then, the robot A stops at P A When (5) is reached, P A (5) does not interfere with any of the postures of robot B. Therefore, if the interference areas are not merged, robot B will B (4) You should be able to take the postures listed below.

[0089] However, if the interference area has been merged as described above, the interlock has not been released at this point, so robot B will still be in P. B (4) The robot cannot take the following postures. A (6), P A The same is true when the transition to (7) is made sequentially. Robot B is in P, which should not interfere. B (4) The robot A cannot take the posture P A (8) Finally, P B (4) You will be able to assume the following postures.

[0090] As such, after merging interference areas, the effective area of ​​the shaded portion increases, and simultaneous operation of multiple robots that take a route to avoid this may result in a change in route compared to before merging, which has the disadvantage of potentially increasing the overall cycle time. However, merging has the advantage of reducing the number of interlock descriptions in the robot program, improving readability, and reducing the frequency with which the robot stops and restarts to avoid multiple interference areas, thereby reducing the number of times the robot accelerates and decelerates, ultimately extending the operating life of the robot. These advantages will be discussed in detail later (see Figures 19 to 22).

[0091] When merging interference areas that do not have an inclusion relationship as described above, the interference area merging unit 122 may determine whether or not there is a predetermined relationship between the effective area of ​​interference area α and the effective area of ​​interference area β in S1224 of Fig. 13. For example, it may be determined that there is a predetermined relationship when the distance between the two closest effective areas is equal to or less than a predetermined standard, or when the size of the smallest rectangle that encompasses the two (or more) effective areas is equal to or less than a predetermined standard.

[0092] 16, the expansion process shown in Fig. 12 may be performed first on at least one of interference area 3 and interference area 4, and then the merging process may be performed, or the expansion process shown in Fig. 12 may be performed on the merged interference area 3+4. Similarly, when the merging process shown in Fig. 17 is performed, the expansion process shown in Fig. 12 may be performed first on at least one of interference area 1 and interference area 2, and then the merging process may be performed, or the expansion process shown in Fig. 12 may be performed on the merged interference area 1+2.

[0093] As described above, in all of the expansion process shown in Figure 12, the merging process of interference areas with an inclusion relationship shown in Figure 16, and the merging process of interference areas without an inclusion relationship shown in Figure 17, a new interference area is identified that includes the original interference area (i.e., a set of postures in which interference between robots actually occurs) and an area that does not belong to any of the original interference areas (i.e., a set of postures in which interference between robots does not actually occur).

[0094] [Interlock setting process] Fig. 18 is a flowchart showing an example of interlock setting processing executed by interlock setting unit 123. This processing is executed in S123 of Fig. 2. This flowchart will be described below.

[0095] (S1231) The interlock setting unit 123 performs a loop calculation of the process of S1232 for all robots stored in the robot model information 1411.

[0096] (S1232) The interlock setting unit 123 initializes the robot program that defines the operation of robot X based on the robot trajectory information 1421, and stores the program in robot program information 1431. Specifically, for all postures that make up the robot trajectory, operation commands that cause the robot to move toward that posture are inserted in chronological order. When this step is completed, the robot program contains only operation commands and does not yet contain any commands related to interlocks.

[0097] (S1233) The interlock setting unit 123 calculates all the interference matrices M XY The processing from S1234 to S1236 is looped for the above.

[0098] (S1234) The interlock setting unit 123 calculates the interference matrix M XY The process from S1235 to S1236 is looped for all interference regions α included in the calculation.

[0099] (S1235) In the robot program of robot X, the interlock setting unit 123 inserts an intrusion notification command to the other robot and an exit standby command for the other robot immediately before the operation command to intrude into interference area α, and an exit notification command to the other robot immediately after the operation command to exit interference area α. Since an interlock is realized in the group of operation commands of the robot program sandwiched between these commands, interlock-related commands are inserted immediately before and after the interference area as described above, with the aim of applying an interlock only to the interference area and not stopping the robot outside the interference area.

[0100] In addition, when the above-mentioned interference area expansion process is performed, the interlock setting unit 123 inserts an intrusion notification command to the opponent and an exit waiting command for the opponent immediately before the operation command to invade the interference area after the expansion process, and inserts an exit notification command to the opponent immediately after the operation command to exit the interference area after the expansion process.

[0101] (S1236) In the robot program of robot Y, as in the case of robot X, the interlock setting unit 123 inserts an intrusion notification command to the other robot and an exit standby command for the other robot immediately before the operation command to intrude into the interference area α, and an exit notification command to the other robot immediately after the operation command to exit the interference area α.

[0102] FIG. 19 is an explanatory diagram showing an example of an interlock insertion position when interfering regions that do not have an inclusion relationship are merged.

[0103] Specifically, Fig. 19 illustrates, on an interference matrix, an example in which the processing of S123 is performed on interference area 1+2, which is the merged interference area 1 and interference area 2 shown in Fig. 10. The arrows in the figure indicate the insertion points of interlock-related commands.

[0104] From the viewpoint of robot A, the motion command included in the interference area 1+2 is posture P A (2) From posture P A (7). Therefore, the posture P A (1) and posture P A During (2), the robot B sends an intrusion notification command and an exit standby command to the robot B at the posture P A (7) and posture P A An exit command to Robot B is inserted between (8).

[0105] Similarly, from the viewpoint of robot B, the motion command included in the interference area 1+2 is posture P B (4) From posture P B (6). Therefore, the posture P B (3) and posture P B During (4), the robot A sends an intrusion notification command and an exit standby command to the robot A at the posture P B (6) and posture P B An exit command to Robot A is inserted between (7).

[0106] As explained above, interlock-related commands are inserted immediately before and after the interference area, so when determining the insertion location, the result is the same whether you refer to interference area 1+2 itself or to the effective area, which is the smallest rectangle that contains it. If the insertion location of the interlock-related commands is the same, the paths taken when multiple robots are operated simultaneously will also be the same, which is the reason why the smallest rectangle that contains the interference area is defined as the effective area, as mentioned above.

[0107] FIG. 20 is an explanatory diagram showing an example of a robot movement path based on an interlock-related command when interference areas that do not have an inclusion relationship are merged.

[0108] Specifically, Figure 20 shows an example of a path in which robots A and B are operated simultaneously using a robot program with interlock-related commands inserted as shown in Figure 19, illustrated on an interference matrix.

[0109] During steady-state operation, robot A and robot B start operating at the same time, so the interference matrix M AB The top left corner of (P A (1), P B Starting from (1), both robots complete their movements in the bottom right square (P A (10), P B (10)). However, due to the influence of the inserted interlock-related command, the posture P A At point (2), robot A, which entered interference area 1+2 before robot B, has posture P A Robot B passes through (7) and exits the interference area until it reaches P B Stop at (3).

[0110] After that, robot B passes through interference area 1+2, and robot A, which never stopped, assumes posture P A At (10), robot A stops first due to the completion of its motion. After that, robot B takes the posture P B (6) From posture P B Perform the steps up to (10).

[0111] If we illustrate this on an interference matrix, we can see that as shown in Figure 20, the robot moves diagonally downward to the right from the top left cell to the bottom right cell, and when it hits interference area 1+2, it takes a path to avoid it.

[0112] Next, in order to demonstrate the effect of merging interference areas, the interlock settings and robot operations when interference areas are not merged will be described.

[0113] FIG. 21 is an explanatory diagram showing an example of an interlock insertion location when interference regions that do not have an inclusion relationship are not merged.

[0114] FIG. 22 is an explanatory diagram showing an example of a robot movement path based on an interlock-related command in the case where interference areas that do not have an inclusion relationship are not merged.

[0115] As an example, Fig. 21 shows the location of interlock insertion when interference area 1 and interference area 2 shown in Fig. 10 are not merged. Fig. 22 shows an example of a path in which robot A and robot B are simultaneously operated using a robot program created by inserting the interlock-related commands shown in Fig. 21.

[0116] 21, when merging is not performed, the number of interference areas is doubled compared to after merging, and therefore the number of interlock-related commands inserted is also doubled, resulting in a robot program that is more complicated and less readable. For simplicity's sake, this example has been described using a case where the number of interference areas is as small as two, but in actual robots used in production equipment, the number of interference areas is as large as several tens to several hundreds, and reducing the number of interlock-related commands is important for ensuring the readability of the robot program.

[0117] Furthermore, as shown in Figure 22, the path when multiple robots are operating simultaneously differs from the path when merged as shown in Figure 20, as it can be seen that a more roundabout path is taken to avoid the interference area 1+2 that has expanded due to merging, which has the disadvantage of possibly increasing the cycle time. However, as mentioned above, in addition to the benefit of improved readability, there is the advantage that the robots do not have to stop and restart their operations in order to avoid hitting multiple interference areas one after another, i.e., the number of times the robot accelerates and decelerates is reduced, thereby extending the robot's lifespan.

[0118] Next, the effect of merging interference regions when there is an inclusion relationship between the effective regions of the interference regions will be described.

[0119] FIG. 23 is an explanatory diagram showing an example of an interlock insertion location and a robot movement path based on the interlock-related command when interference areas having an inclusion relationship are not merged.

[0120] FIG. 24 is an explanatory diagram showing an example of an interlock insertion location when interference areas having an inclusion relationship are merged and an example of a robot movement path based on the interlock-related command.

[0121] The example of Fig. 23 shows the insertion positions of interlock-related commands and the path based on the robot program including the interlock-related commands when interference areas 3 and 4, which have an inclusion relationship in the effective area as shown in Fig. 14 to Fig. 16, are not merged. On the other hand, the example of Fig. 24 shows the insertion positions of interlock-related commands and the path based on the robot program including the interlock-related commands when the above interference areas 3 and 4 are merged.

[0122] As shown in the figure, if there is an inclusion relationship between the effective areas of the interference regions, the effective area of ​​the interference regions does not increase even when merging is performed, so the paths taken when multiple robots are operating simultaneously remain unchanged, and the overall cycle time also remains unchanged.As a result, merging has the advantage of reducing the number of interlock descriptions in the robot program and improving readability, without the disadvantage of an increase in cycle time.

[0123] [Robot movement] As described above, the robot program created by the control program creation device according to this embodiment avoids two non-consecutive interference areas by repeatedly stopping the robot and then restarting its operation, and instead avoids those interference areas all at once, reducing the number of times the robot accelerates and decelerates. In other words, in the non-interference area between two interference areas, multiple robots can operate simultaneously, but one of the robots is intentionally stopped.

[0124] [Effects, etc.] As described above, the control program creation device of this embodiment makes it possible to automatically generate highly readable robot programs that minimize the amount of interlock setting description while preventing interference between multiple robots not only during steady-state operation but also during non-steady-state operation. From the perspective of robot operation, this also makes it possible to reduce the number of accelerations and decelerations, thereby extending the robot's lifespan. Furthermore, by including in the output the interference area merge history, i.e., which combination of pre-merged interference areas was merged to create a particular interference area, the intention behind the insertion of interlock-related signals is clarified, further improving the readability of the robot program.

[0125] The system according to the embodiment of the present invention may be configured as follows, for example.

[0126] (1) A control program creation device (e.g., control program creation device 100) includes a processor (e.g., calculation unit 120) and a storage unit (e.g., storage unit 140), wherein the storage unit holds robot model information (e.g., robot model information 1411) indicating the arrangement, shape, and axis configuration of a plurality of robots, and robot trajectory information (e.g., robot trajectory information 1421) indicating trajectories of the plurality of robots, and the processor, based on the robot model information and the robot trajectory information, determines postures at which the first robot and the second robot interfere with each other by comparing all postures in the trajectory of a first robot of the plurality of robots with all postures in the trajectory of a second robot. A plurality of interference areas each consisting of one or more posture pairs is identified (e.g., S121, FIG. 6). A third interference area (e.g., interference area 3+4 shown in FIG. 16, interference area 1+2 shown in FIG. 17, or an interference area subjected to expansion processing shown in FIG. 12) is identified as a continuous area including a first interference area among the plurality of interference areas, a second interference area different from the first interference area, and at least one posture pair not included in any of the plurality of interference areas (e.g., S122, FIG. 13). Control programs (e.g., robot program information 1431) including commands to avoid the posture pair corresponding to the third interference area are created as control programs for the first robot and the second robot (e.g., S123, FIG. 18).

[0127] This makes it possible to automatically generate highly readable robot programs that minimize the amount of interlock setting description, while preventing interference between multiple robots not only during steady-state operation but also during non-steady-state operation.

[0128] (2) A control program creation device as described in (1) above, wherein in an interference matrix that maps pairs of postures in which the first robot and the second robot interfere with each other onto a two-dimensional space that represents all pairs of postures in the order of appearance in the trajectory of the first robot and postures in the order of appearance in the trajectory of the second robot, the first interference region and the second interference region each include one or more pairs of consecutive postures, and the first interference region and the second interference region are not consecutive.

[0129] This allows you to merge interference areas and reduce the number of interlock setting entries.

[0130] (3) A control program creation device as described in (1) above, wherein the section of the trajectory of the first robot in which the posture of the first robot interferes with the second robot in the first interference area includes the section of the posture of the first robot in which the posture of the second robot interferes with the second robot in the second interference area, and the section of the posture of the second robot in which the posture of the first robot interferes with the first robot in the first interference area includes the section of the posture of the second robot in which the posture of the second robot interferes with the first robot in the second interference area.

[0131] This allows interference areas to be merged and the number of interlock setting entries to be reduced without the disadvantage of increased cycle time.

[0132] (4) In the control program creation device described in (1) above, the processor creates a control program for the first robot by inserting instructions to avoid interference with the second robot immediately before an operation command to enter a section of the trajectory of the first robot corresponding to the third interference area and immediately after an operation command to exit that section.

[0133] This allows you to merge interference areas and reduce the number of interlock setting entries.

[0134] (5) In the control program creation device described in (4) above, the command to avoid interference with the second robot includes a command to notify the second robot of an intrusion (for example, an intrusion notification command to the opponent shown in Figure 5) and a command to wait for the second robot to exit (for example, an exit waiting command to the opponent shown in Figure 5), which are inserted immediately before an operation command to enter the section corresponding to the third interference area, and a command to notify the second robot of an exit (for example, an exit notification command to the opponent shown in Figure 5), which is inserted immediately after an operation command to exit the section corresponding to the third interference area.

[0135] This makes it possible to avoid interference between the robots.

[0136] (6) In the control program creation device described in (1) above, the processor creates the control program so that the movement command for the posture within the section corresponding to the third interference area and the command to avoid the interference inserted before and after the section corresponding to the third interference area include information indicating that the command corresponds to the third interference area (e.g., interference area name 1437 shown in Figure 5).

[0137] This improves the readability of the robot program.

[0138] (7) In the control program creation device described in (6) above, the processor creates the control program so that it includes information indicating that the third interference area includes the first interference area and the second interference area (for example, the interference area "1+2" ​​in the interference area name 1437 shown in Figure 5).

[0139] This improves the readability of the robot program.

[0140] (8) In the control program creation device described in (1) above, the processor identifies the third interference area so as to include a section of the trajectory sandwiched between a section corresponding to the first interference area and a section corresponding to the second interference area.

[0141] This allows interfering areas that do not have an inclusion relationship to be merged, reducing the number of interlock setting entries.

[0142] (9) In the control program creation device described in (1) above, the processor identifies the third interference area so as to include adjacent sections of the trajectory before and after at least one of the sections corresponding to the first interference area and the section corresponding to the second interference area (for example, the expansion process shown in Figure 12).

[0143] This makes it possible to prevent the robots from coming close to each other without interfering with each other.

[0144] (10) A robot system including the first robot and the second robot controlled by a control program created by the control program creation device described in (1) above.

[0145] This prevents the robot from having to stop and then repeatedly accelerate and decelerate to avoid two non-consecutive interference areas, and instead avoids both interference areas at once, reducing the number of times the robot accelerates and decelerates.

[0146] (11) A robot system (e.g., robot 160) including a plurality of robots, the plurality of robots including a first robot (e.g., robot A) and a second robot (e.g., robot B), wherein a first interference region consisting of one or more sets of postures in which the first robot and the second robot interfere with each other and a second interference region different from the first interference region are identified, and the first robot determines a section of posture of the second robot corresponding to the first interference region, a section of posture of the second robot corresponding to the second interference region, and a section of posture of the first robot corresponding to the second interference region. When the robot takes any of the postures in the section sandwiched between the section of the posture of the second robot corresponding to the interference area and the section of the posture of the second robot corresponding to the second interference area, the robot is controlled not to take any of the postures in the section of the posture of the first robot corresponding to the first interference area, the section of the posture of the first robot corresponding to the second interference area, and the section sandwiched between the section of the posture of the first robot corresponding to the first interference area and the section of the posture of the first robot corresponding to the second interference area (for example, the movement paths of robot A and robot B shown in Figure 20).

[0147] This prevents the robot from having to stop and then repeatedly accelerate and decelerate to avoid two non-consecutive interference areas, and instead avoids both interference areas at once, reducing the number of times the robot accelerates and decelerates.

[0148] (12) The robot system described in (11) above, wherein the section of the posture of the first robot that interferes with the second robot in the first interference area includes the section of the posture of the first robot that interferes with the second robot in the second interference area, and the section of the posture of the second robot that interferes with the first robot in the first interference area includes the section of the posture of the second robot that interferes with the first robot in the second interference area (for example, merged interference areas when there is an inclusion relationship as shown in Figure 24).

[0149] This allows interference areas to be avoided en masse without the disadvantage of increased cycle time, reducing the number of times the robot accelerates and decelerates.

[0150] The present invention is not limited to the above-described embodiments and includes various modifications. For example, the above-described embodiments have been described in detail to provide a better understanding of the present invention, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, it is possible to replace part of the configuration of one embodiment with the configuration of another embodiment, or to add the configuration of another embodiment to the configuration of one embodiment. Furthermore, it is possible to add, delete, or replace part of the configuration of each embodiment with other configurations.

[0151] Furthermore, the above-described configurations, functions, processing units, processing means, etc. may be partially or entirely implemented in hardware, for example, by designing them as integrated circuits. The above-described configurations, functions, etc. may also be implemented in software, with a processor interpreting and executing a program that implements each function. Information such as the programs, tables, and files that implement each function can be stored in storage devices such as nonvolatile semiconductor memory, hard disk drives, and solid-state drives (SSDs), or in computer-readable, non-transitory data storage media such as IC cards, SD cards, and DVDs.

[0152] In addition, the control lines and information lines shown are those that are considered necessary for the explanation, and not all control lines and information lines in the product are necessarily shown. In reality, it can be considered that almost all components are interconnected. [Explanation of symbols]

[0153] 100 Control program creation device 110 Input section 120 Calculation Unit 121 Interference area calculation unit 122 Interference area merging section 123 Interlock setting section 130 Output section 140 Storage section 141 Robot model information storage unit 142 Robot trajectory information storage unit 143 Robot program information storage unit 1411 Robot Model Information 1421 Robot trajectory information 1431 Robot Program Information

Claims

1. A control program creation device, A processor and a storage unit are included, the storage unit holds robot model information indicating the arrangement, shape, and axis configuration of a plurality of robots, and robot trajectory information indicating trajectories of the plurality of robots; The processor: identifying a plurality of interference regions, each consisting of one or more pairs of postures in which the first robot and the second robot interfere with each other, by comparing all postures in the posture of a first robot of the plurality of robots with all postures in the posture of a second robot of the plurality of robots based on the robot model information and the robot trajectory information; identifying a third interference region that is a continuous region including a first interference region among the plurality of interference regions, a second interference region different from the first interference region, and at least one set of attitudes that is not included in any of the plurality of interference regions; A control program creation device that creates control programs for the first robot and the second robot, the control programs including instructions for avoiding a set of postures corresponding to the third interference region.

2. 2. The control program creating device according to claim 1, A control program creation device characterized in that in an interference matrix in which sets of postures in which the first robot and the second robot interfere are mapped onto a two-dimensional space representing all sets of postures in the order of appearance in the trajectory of the first robot and the order of appearance in the trajectory of the second robot, the first interference region and the second interference region each include one or more sets of consecutive postures, and the first interference region and the second interference region are not consecutive.

3. 2. The control program creating device according to claim 1, A control program creation device characterized in that a section of the trajectory of the first robot in which a posture of the first robot interferes with the second robot in the first interference region includes a section of a posture of the first robot in which a posture of the second robot interferes with the second robot in the second interference region, and a section of the posture of the second robot in which a posture of the second robot interferes with the first robot in the first interference region includes a section of a posture of the second robot in which a posture of the second robot interferes with the first robot in the second interference region.

4. 2. The control program creating device according to claim 1, a processor for creating a control program for the first robot by inserting instructions for avoiding interference with the second robot immediately before an operation command for entering a section of the trajectory of the first robot that corresponds to the third interference area and immediately after an operation command for exiting that section.

5. 5. The control program creating device according to claim 4, A control program creation device characterized in that the command to avoid interference with the second robot includes an command to notify the second robot of an intrusion and an command to wait for the second robot to exit, which are inserted immediately before an operation command to enter a section corresponding to the third interference area, and an command to notify the second robot of an exit, which is inserted immediately after an operation command to exit the section corresponding to the third interference area.

6. 2. The control program creating device according to claim 1, a processor that creates the control program so that the processor includes information indicating that the operation command for the posture within the section corresponding to the third interference area and the command to avoid the interference inserted before and after the section corresponding to the third interference area are commands corresponding to the third interference area.

7. 7. The control program creating device according to claim 6, A control program creation device characterized in that the processor creates the control program so that it includes information indicating that the third interference area includes the first interference area and the second interference area.

8. 2. The control program creating device according to claim 1, A control program creation device characterized in that the processor identifies the third interference area so as to include a section of the trajectory that is sandwiched between a section corresponding to the first interference area and a section corresponding to the second interference area.

9. 2. The control program creating device according to claim 1, The processor identifies the third interference area so as to include adjacent sections of the trajectory before and after at least one of the sections corresponding to the first interference area and the section corresponding to the second interference area.

10. A robot system including the first robot and the second robot controlled by a control program created by the control program creating device according to claim 1.

11. A robot system including a plurality of robots, the plurality of robots includes a first robot and a second robot; a first interference region consisting of one or more sets of postures in which the first robot and the second robot interfere with each other, and a second interference region different from the first interference region are identified; a robot system characterized in that, when the second robot takes any of a section of the posture of the second robot corresponding to the first interference region, a section of the posture of the second robot corresponding to the second interference region, and a section sandwiched between a section of the posture of the second robot corresponding to the first interference region and a section of the posture of the second robot corresponding to the second interference region, the first robot is controlled not to take any of a section of the posture of the first robot corresponding to the first interference region, a section of the posture of the first robot corresponding to the second interference region, and a section sandwiched between a section of the posture of the first robot corresponding to the first interference region and a section of the posture of the first robot corresponding to the second interference region.

12. The robot system according to claim 11, A robot system characterized in that a section of a posture of the first robot that interferes with the second robot in the first interference region includes a section of a posture of the first robot that interferes with the second robot in the second interference region, and a section of a posture of the second robot that interferes with the first robot in the first interference region includes a section of a posture of the second robot that interferes with the first robot in the second interference region.

13. A control program creation method executed by a control program creation device, comprising: the control program creation device includes a processor and a storage unit; the storage unit holds robot model information indicating the arrangement, shape, and axis configuration of a plurality of robots, and robot trajectory information indicating trajectories of the plurality of robots; The control program creation method includes: a step in which the processor identifies a plurality of interference regions, each consisting of one or more pairs of poses in which the first robot and the second robot interfere with each other, by comparing all poses in a trajectory of a first robot of the plurality of robots with all poses in a trajectory of a second robot, based on the robot model information and the robot trajectory information; a step by the processor of identifying a third interference region which is a continuous region including a first interference region among the plurality of interference regions, a second interference region different from the first interference region, and at least one set of attitudes which is not included in any of the plurality of interference regions; a step of the processor creating a control program for the first robot and the second robot, the control program including an instruction to avoid a set of postures corresponding to the third interference region.

Citation Information

Patent Citations

  • JP190315A