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

The control program creation device addresses the challenge of writing readable robot programs by automatically identifying and merging interference regions, setting interlocks, and generating programs that prevent collisions during steady and unsteady-state operations, thereby reducing interference risks and improving operational safety.

WO2026034602A1PCT designated stage Publication Date: 2026-02-12HITACHI LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/JP2025/028192
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-08-09
Filing Date
2025-08-07
Publication Date
2026-02-12

AI Technical Summary

Technical Problem

Existing robot programs are cumbersome to write and difficult to read, especially when considering unsteady-state operations, leading to increased costs and interference accidents due to manual corrections.

Method used

A control program creation device that automatically generates highly readable robot programs by identifying and merging interference regions, setting interlocks to prevent collisions between robots during both steady-state and unsteady-state operations, using a processor to analyze robot models and trajectories, and creating a control program with integrated interlock settings.

Benefits of technology

The solution minimizes the description of interlock settings, improves program readability, and reduces the risk of interference accidents by automatically generating robot programs that account for various operational scenarios, enhancing safety and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025028192_12022026_PF_FP_ABST
    Figure JP2025028192_12022026_PF_FP_ABST
Patent Text Reader

Abstract

This control program creation device comprises a processor and a storage unit. The processor specifies a plurality of interference regions comprising one or more sets of postures in which a first robot and a second robot interfere with each other; specifies 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 postures not included in any of the plurality of interference regions; and creates a control program including an instruction for avoiding a set of postures corresponding to the third interference region as a control program for the first robot and the second robot.
Need to check novelty before this filing date? Find Prior Art

Description

Control program creation device, robot system, and control program creation method Incorporation by Reference

[0001] This application claims priority from Japanese Patent Application No. 2024-134354, filed on August 9, 2024, the contents of which are incorporated herein by reference.

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

[0003] In production facilities where multiple industrial robots are operated, interlocks are created for each robot within the robot programs that define its operation to prevent interference or collisions between the robots. Interlocks must be configured to prevent interference not only when the production facility is operating normally and all robots are operating without delay (hereinafter referred to as "steady-state 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 "unsteady-state operation"). Specific examples of unsteady state operation include operating each robot individually to check their operation immediately after start-up, or operating a specific robot individually to return it to its home position after an emergency shutdown of the production facility. Unsteady state operation can occur in various ways depending on which robots are stopped or delayed, and even the amount of the delay. Therefore, writing a robot program that considers all of these scenarios and sets up interlocks is usually cumbersome, leading to poor 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 for supporting the creation of a control program for causing multiple industrial robots to work in cooperation with each other. 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."

[0006] Patent Document 1: Japanese Patent Application Laid-Open No. 2016-190315

[0007] In Patent Document 1, for the purpose 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.

[0008] In order to achieve at least one of the above objects, for example, the configurations described in the claims are adopted. The present application includes multiple means for achieving the above objects, 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 regions 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 the trajectory of a first robot with all poses in the trajectory of a second robot based on the robot model information and the robot trajectory information, identifies a third interference region among the multiple interference regions as a continuous region including the first interference region, a second interference region different from the first interference region, and at least one pose set not included in any of the multiple interference regions, and creates a control program for the first robot and the second robot that includes an instruction to avoid the pose set corresponding to the third interference region.

[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.

[0011] 1 is a block diagram showing an example of the configuration of a control program creation device. FIG. 2 is a flowchart showing an example of processing executed by the control program creation device. FIG. 3 is an explanatory diagram showing an example of robot model information stored in a robot model information storage unit. FIG. 4 is an explanatory diagram showing an example of a table configuration of robot trajectory information stored in a robot trajectory information storage unit. FIG. 5 is an explanatory diagram showing an example of a table configuration of robot program information stored in a robot program information storage unit. FIG. 6 is a flowchart showing an example of interference area calculation processing executed by an interference area calculation unit. FIG. 7 is an explanatory diagram showing an example of an interference matrix initialized by the interference area calculation unit. FIG. 8 is an explanatory diagram showing an example of an interference matrix created by the interference area calculation unit. FIG. 9 is an explanatory diagram showing an example of an interference matrix created by the interference area calculation unit, focusing on specific interference. FIG. 10 is an explanatory diagram showing an example of an interference area extracted from an interference matrix created by the interference area calculation unit. FIG. 11 is an explanatory diagram showing an example of interference area expansion processing by the interference area calculation unit. FIG. 12 is an explanatory diagram showing an example of interference area expansion processing by the interference area calculation unit. FIG. 13 is a flowchart showing an example of interference area merging processing executed by an interference area merging unit. FIG. 14 is an explanatory diagram showing an example of a set of interference areas having an inclusion relationship. FIG. 15 is an explanatory diagram showing an example of an effective area of ​​one of a set of interference areas having an inclusion relationship. FIG. 1 is an explanatory diagram showing an example of the effective area of ​​the other interference area of ​​a pair of interference areas having an inclusion relationship. FIG. 1 is an explanatory diagram showing an example of merging processing for interference areas that do not have an inclusion relationship. FIG. 2 is a flowchart showing an example of interlock setting processing executed by an interlock setting unit. FIG. 1 is an explanatory diagram showing an example of interlock insertion locations when interference areas that do not have an inclusion relationship are merged. FIG. 2 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. FIG. 3 is an explanatory diagram showing an example of an interlock insertion location when interference areas that do not have an inclusion relationship are not merged. FIG. 4 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 not merged. FIG. 5 is an explanatory diagram showing an example of an interlock insertion location when interference areas that do not have an inclusion relationship are not merged and a robot movement path based on the interlock-related command when interference areas that have an inclusion relationship are not merged.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.

[0012] Hereinafter, a control program creation device according to the present invention will be described 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 explanations 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), server, etc.), and realizes the characteristic processing functions of this embodiment (each processing unit of the calculation unit 120) by, for example, software program processing.

[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 a hard disk drive (HDD) or a solid state drive (SSD), and has 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 through the input unit 110, and is composed of layout 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 via the input unit 110, and is information indicating the target trajectories that are desired for each of the 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 for 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; for example, the coordinates of the robot's end effector may be used.

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

[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 creation device 100. Alternatively, the control program creation device 100, robot control device 150, and robot 160 may all be configured as an integrated unit. Furthermore, the robot 160 may be provided with a signal terminal for assigning an individual interlock signal to each interference area described below, and may be configured to receive a control signal from the robot control device 150 through this signal terminal to control the robot 160.

[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. As shown in FIG.

[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 robot pairs (X, Y) ((A, B) in the example of FIG. 1) during both steady-state operation and non-steady-state operation. The calculated interference is then 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 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 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 layout information for all robots, and link shape information and axis configuration information for all robots. A typical robot facility includes static interfering objects other than the robots, such as workpieces that the robots work on, fixture stands that support the workpieces, and robot stands that support the robots. However, this device uses robot trajectory information 1421 (see FIG. 3 ), which has already been designed to avoid these static interfering objects, as input, to create a robot program that avoids dynamic interference between robots, so the robot model information does not necessarily need to include static interfering objects such as workpieces, fixtures, and robot stands.

[0034] In general, to prevent interference between robots, a trajectory planning approach, i.e., the robot trajectory itself, is often used, which requires input of these static interference objects. The present invention is effective against interference between robots that cannot be avoided using this approach. However, as mentioned above, because a robot program is an interface that is read and written by many people, it is desirable for the difference in corrections 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 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 robot pairs (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 a 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). Figs. 1425 and 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 P B 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. As shown in FIG.

[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 exit standby command for the other party 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 include 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 target robot pair. 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 an operation command, a posture ID 1434 for storing a target posture and values ​​of each axis value 1435 are stored. On the other hand, for a command related to an interlock, a partner name 1436 for specifying the partner robot to which the command is applied 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 (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 operation 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 FIG. 5 clearly shows that interference area 1, interference area 2, and the non-interference area between them (described later in FIG. 10 ) are treated as a single interference area 1+2 through the merge process. Furthermore, it clearly shows that operation 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, but 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 Region Calculation Processing] Fig. 6 is a flowchart showing an example of interference region calculation processing executed by the interference region calculation unit 121. This processing is executed in S121 of Fig. 2. This flowchart will be described 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 listed pairs of robots (X, Y).

[0050] (S1213) The interference region calculation unit 121 calculates an interference matrix M XY is initialized based on the number of postures of the trajectories of robot X and robot Y stored in the 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)) as the first coordinate axis, and ten postures (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 constituting the trajectory of the robot X. X For (i), the processing from S1215 to S1216 is performed in a loop.

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

[0054] (S1216) The interference region calculation unit 121 determines whether the robot X has a posture P X (i) is given to robot Y in posture P Y (j) simultaneously, 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 of

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

[0056] In this example, the interference region calculation unit 121 completes the above-described processes from S1214 to S1216 and creates the interference matrix M AB Hereinafter, as shown in FIG. 8, the squares where interference occurs are shown as black squares. In the example of FIG. 8, the posture P A (2) P A (3) P A (4) and the posture P of robot B B (4) P B (5), P B (6) and (7), interference is calculated.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 sets of postures at which interference occurs between both robots onto a two-dimensional space that represents all pairs of postures in the order of appearance in the trajectory of one robot and postures 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 is based on the interference matrix M shown in FIG. AB Among them, robot A has posture P A (2) During normal operation of the production facility, robot A is in the posture P A At the timing of (2), robot B takes the posture P B If (2) is taken, the posture of robot A in this process is P A (2) and the posture P of robot B calculated as having interference B (4) P B (5), P B 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 may occur due to a shift in the timing of the actions of one of the robots, such as a sequential 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 taking operation timing into consideration, as explained in the process above, is necessary to prevent interference during non-steady operation in the robot program created in the subsequent process.Furthermore, in order to improve the outlook for the subsequent process, 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 postures 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. In FIG.

[0063] This example is based on the interference matrix M shown in FIG. 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 is in the position 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, the interference area 2 is a set of all combinations of postures 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 (5) Paired with posture P A (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 of FIG. 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 indicates that interference actually occurs in all combinations with (4), and that no interference occurs in the other combinations.

[0069] In contrast, in the example of FIG. 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 B All 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 to be no interference region, but was added to the interference region because it is close to a 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 Region Merging Process] Fig. 13 is a flowchart showing an example of interference region merging process executed by the interference region merging unit 122. This process 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 process from S1222 to S1225 is looped for the above.

[0073] (S1222) The interference region merging unit 122 lists all pairs of two interference regions (α, β) from among all the calculated interference regions. In the example of Fig. 10 described above, the pair (1, 2) of interference region 1 and interference region 2 is listed, and in the example of Fig. 14 described below, the pair (3, 4) of interference region 3 and interference region 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 according to 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; 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. X (3) ~P X (5) and P Y (3) ~P Y This is the entire rectangle, including all combinations with (5).

[0081] On the other hand, the 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 a section of the trajectory of the robot X that corresponds to the interference region 3. X (2) ~P X (5) is the section P of the trajectory of the robot X that corresponds to the interference area 4. X (4) and is a section of the trajectory of the robot Y, the section of the pose corresponding to the interference area 3. Y (2) ~P Y (5) is the section P of the posture of the trajectory of the robot Y corresponding to the interference area 4. X (3) is included.

[0083] (S1225) If S1224 returns 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 paths that avoid the effective areas of the interference areas on the interference matrix, the paths taken before and after the interference areas are merged remain unchanged, and the overall cycle time also remains unchanged. Therefore, merging has the advantage of reducing the number of interlock descriptions in the robot program and improving readability, without the disadvantage of increased cycle time. This feature will be described in detail 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 effective 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. 17 .

[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, and the shaded area, that is, 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 region consisting of all combinations with (4).

[0087] In other words, P is a section of the trajectory of the robot A in which the posture corresponds to at least one of the interference area 1 and the 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 (not present in the example of FIG. 17) that does not correspond to either interference region 1 or interference region 2. B (4) ~P B (6) is identified. Then, the identified P A (2) ~P A (7) and P B (4) ~P B Interlocking statements are inserted to avoid all pose pairs with (6).

[0088] As a result, for example, the posture of robot B becomes P B (4) Before reaching the target, the posture of robot A is P A When (2) is reached, robot B will B (4) Unable to take the following posture, P B (3) Then, the robot A stops at P A When (5) is reached, P A (5) does not interfere with any posture of robot B, so if the interference area is not merged, robot B will B (4) You should be able to assume the following postures.

[0089] However, if the interference areas have been merged as described above, the interlock has not been released at this point, so robot B is still in P. B (4) The robot cannot take the following postures. A (6) PA The same happens when the robot moves to (7), and robot B moves to P 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 described above, after merging the interference areas, the effective area (shaded area) increases. Simultaneous operation of multiple robots that avoid these areas may result in a different path compared to before merging, which may result in an increase in the overall cycle time. However, merging has the advantage of reducing the number of interlocks 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 robot's operating life. These advantages are described in more detail below (see Figures 19 to 22).

[0091] When merging interference regions that do not have an inclusion relationship as described above, the interference region merging unit 122 may determine whether or not a predetermined relationship exists between the effective region of interference region α and the effective region of interference region β in S1224 of Fig. 13. For example, it may be determined that the predetermined relationship exists when the distance between the two closest effective regions is equal to or less than a predetermined standard, or when the size of the smallest rectangle that encompasses the two (or more) effective regions 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 merge 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 merge 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 merge 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 the 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 the robots actually does not occur).

[0094] [Interlock Setting Process] Fig. 18 is a flowchart showing an example of the interlock setting process executed by the interlock setting unit 123. This process 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 region.

[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 location when interference 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 obtained by merging interference area 1 and interference area 2 shown in Fig. 10. The arrows in the figure indicate the insertion positions 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 the 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 notification 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 the 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 notification command to robot A is inserted between (7).

[0106] As explained above, because interlock-related commands are inserted immediately before and after the interference area, 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, FIG. 20 shows an example of a path in which robot A and robot B are simultaneously operated using a robot program with interlock-related commands inserted as shown in FIG. 19, illustrated on an interference matrix.

[0109] During steady operation, robot A and robot B start operating at the same time, so the interference matrix M AB The top left square of (P A (1), P B (1)) and move to the bottom right square (P A (10), P B (10)). However, due to the influence of the inserted interlock-related command, the posture PA (2) At this point, robot A, which entered the interference area 1+2 before robot B, has a posture P A (7) and exit the interference area, robot B remains in 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 the posture P B Perform the operations up to (10).

[0111] If this is illustrated on an interference matrix, as shown in FIG. 20, it can be seen that as the robot moves diagonally downward to the right from the upper left cell to the lower right cell, it will take a path to avoid interference area 1+2 when it hits 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] As shown in Figure 21, without merging, the number of interference areas is doubled after merging, and the number of interlock-related instructions inserted is also doubled, resulting in a robot program that is more complex and less readable. In this example, for simplicity, the number of interference areas is described as two. However, in actual robots used in production facilities, the number of interference areas can be as many as tens or hundreds. Reducing the number of interlock-related instructions is important for ensuring the readability of the robot program. Furthermore, if individual interlock-related instructions are set for each interference area in a robot system, the number of instructions becomes enormous, and the number of signal terminals required for communication between control devices may not be physically accommodated. In other words, if individual interlock signals are assigned to each interference area, the number of I / O ports will quickly reach its limit. Therefore, reducing the number of interlock-related instructions is also important for satisfying the physical specification constraints of the robot system.

[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 in that it takes a more roundabout path 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 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 life of the robot.

[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 the effective areas of interference regions have an inclusion relationship, merging does not increase the effective area of ​​the interference regions. Therefore, the paths taken by multiple robots operating simultaneously remain unchanged, and the overall cycle time remains unchanged. Therefore, merging offers the advantage of reducing the number of interlock statements in the robot program and improving readability, without the disadvantage of increased cycle time. Reducing the number of interlock-related instructions is also important for satisfying the constraints of the robot's physical specifications. However, exhaustively searching all possible merge patterns while considering the impact on cycle time and determining which interference regions to merge requires a very long calculation time. On the other hand, merging interference regions that have an inclusion relationship with the effective areas of interference regions does not increase the cycle time, so they can be quickly identified as interference regions to be merged. As a result, the number of interlock-related instructions can be reduced in a short time.

[0123] [Robot Operation] As described above, the robot program created by the control program creation device according to this embodiment does not require the robot to stop and then repeatedly accelerate and decelerate to avoid two non-consecutive interference areas, but 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, it is also 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 given 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., the control program creation device 100) includes a processor (e.g., the calculation unit 120) and a storage unit (e.g., the storage unit 140). The storage unit holds robot model information (e.g., the robot model information 1411) indicating the arrangement, shape, and axis configuration of a plurality of robots, and robot trajectory information (e.g., the robot trajectory information 1421) indicating trajectories of the plurality of robots. The processor, based on the robot model information and the robot trajectory information, determines postures at which the first robot and the second robot will 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 ), and a control program (e.g., robot program information 1431) including a command to avoid the posture pair corresponding to the third interference area is created as a control program 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 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 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 sets 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 first 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, the command to notify the opponent of an intrusion shown in Figure 5) and a command to wait for the second robot to exit (for example, the command to wait for the opponent to exit 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, the command to notify the opponent of an exit 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” of the interference area name 1437 shown in FIG. 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 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 restart the operation, but allows the robot to avoid those interference areas all 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 specified, and the first robot determines a posture section of the second robot corresponding to the first interference region, a posture section of the second robot corresponding to the second interference region, and a posture section 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, or 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 restart the operation, but allows the robot to avoid those interference areas all 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, a merged interference area 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, but 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 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.

Claims

1. A control program creation device comprising a processor and a memory unit, wherein the memory unit holds robot model information indicating the arrangement, shape, and axis configuration of a plurality of robots, and robot trajectory information indicating the trajectories of the plurality of robots, wherein the processor: identifies a plurality of interference areas consisting of one or more sets of poses in which the first robot and the second robot interfere by comparing all poses in the trajectory of a first robot of the plurality of robots with all poses in the trajectory of a second robot based on the robot model information and the robot trajectory information, identifies a third interference area which 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 poses not included in any of the plurality of interference areas, and creates a control program for the first robot and the second robot which includes an instruction to avoid the set of poses corresponding to the third interference area.

2. A control program creation device as described in claim 1, characterized in that in an interference matrix that maps pairs of postures in which the first robot and the second robot interfere on a two-dimensional space that represents all pairs of postures in the order of appearance on the trajectory of the first robot and postures in the order of appearance on 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.

3. A control program creation device as described in claim 1, characterized in that 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 first 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.

4. A control program creation device as described in claim 1, characterized in that 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.

5. A control program creation device as described in claim 4, characterized in that the command to avoid interference with the second robot includes a command to notify the second robot of an intrusion and a command to wait for the second robot to exit, 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, which is inserted immediately after an operation command to exit the section corresponding to the third interference area.

6. A control program creation device as described in claim 1, characterized in that 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 they are commands corresponding to the third interference area.

7. A control program creation device according to claim 6, 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. A control program creation device as described in claim 1, characterized in that 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.

9. A control program creation device as described in claim 1, characterized in that 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 including a first robot and a second robot, 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 is controlled so as not to take any posture in any of the sections of the posture of the first robot corresponding to the first interference region, the section of the posture of the second robot corresponding to the second interference region, and the section sandwiched between the section of the posture of the second robot corresponding to the first interference region and the section of the posture of the second robot corresponding to the second interference region, when the second robot takes any posture in any of the sections of the posture of the second robot corresponding to the first interference region, the section of the posture of the first robot corresponding to the second interference region, and the section sandwiched between the section of the posture of the first robot corresponding to the first interference region and the section of the posture of the first robot corresponding to the second interference region.

12. A robot system as described in claim 11, characterized in that the section of the posture of the first robot that interferes with the second robot in the first interference region includes the section of the posture of the first robot that interferes with the second robot in the second interference region, and the section of the posture of the second robot that interferes with the first robot in the first interference region includes the section of the posture of the second robot that interferes with the first robot in the second interference region.

13. A control program creation method for controlling multiple robots, comprising: a step of identifying multiple interference regions consisting of one or more sets of postures in which the first robot and the second robot interfere with each other by comparing the posture in a trajectory of a first robot among the multiple robots with the posture in a trajectory of a second robot; a step of identifying a third interference region which is a continuous region including a first interference region among the multiple interference regions, a second interference region different from the first interference region, and at least one posture set not included in any of the multiple interference regions; and a step of creating a control program for the first robot and the second robot which includes an instruction to avoid the posture set corresponding to the third interference region, A control program creation method, 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.

14. A control program creation device comprising a processor and a memory unit, wherein the memory unit holds robot model information indicating the arrangement, shape, and axis configuration of a plurality of robots, and robot trajectory information indicating the trajectories of the plurality of robots, wherein the processor: identifies a plurality of interference areas consisting of one or more sets of poses in which the first robot and the second robot interfere with each other by comparing the posture in the trajectory of a first robot of the plurality of robots with the posture in the trajectory of a second robot based on the robot model information and the robot trajectory information; identifies a first interference area among the plurality of interference areas, a second interference area different from the first interference area, and, if the smallest rectangular area containing the first interference area contains the second interference area, identifies the rectangular area as a third interference area; and creates a control program for the first robot and the second robot that includes an instruction to avoid the set of poses corresponding to the third interference area.

15. A robot system including a plurality of robots and a robot control device that controls the plurality of robots, wherein the plurality of robots include a first robot and a second robot, the first robot and the second robot are connected to the robot control device and receive control signals from the robot control device through signal terminals provided on the first robot and the second robot, the robot control device holds control programs for the first robot and the second robot, and the control program identifies 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 postures that is not included in any of the plurality of interference regions, a robot system characterized in that, when 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 it interferes with the second robot in the second interference region, and when a section of the trajectory of the second robot in which it interferes with the first robot in the first interference region includes a section of a posture of the second robot in which it interferes with the first robot in the second interference region, the robot system includes a command to avoid a set of postures corresponding to a third interference region, and the first robot and the second robot receive a control signal corresponding to the command to avoid the set of postures corresponding to the third interference region from the robot control device through the signal terminal.

Citation Information

Patent Citations

  • Off-line teaching device and teaching method

    JP1998180664A

  • Off-line teaching method

    JP1999134017A

  • Work support device, work support method and program

    JP2018020413A

  • Robot interference determination device, robot interference determination method and program

    JP2019171499A

  • Robotic system

    US4890241A