Simulation system, simulation method, and simulation program

The simulation system for cable attachment in multi-joint robots addresses the inefficiencies of conventional methods by simulating the movement of cables and optimizing their routing, resulting in reduced time and effort for cable attachment.

JP7694271B2Active Publication Date: 2025-06-18OMRON CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021143885
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-09-03
Publication Date
2025-06-18
Estimated Expiration
2041-09-03

AI Technical Summary

Technical Problem

In the field of Factory Automation (FA), there is a demand for pre-designing the routing of cables attached to industrial robots, as conventional methods involve repeated trial and error, leading to time-consuming and inefficient cable attachment processes.

Method used

A simulation system for cable attachment in multi-joint robots is provided, which includes a posture detection unit, a guide attachment unit, a cable attachment unit, and a simulation execution unit. This system detects specific postures of the robot's joints, specifies attachment settings for cable guides and cables, and simulates the movement of the cables to optimize their routing.

Benefits of technology

The simulation system enables the pre-designing of cable routing, significantly reducing the time and effort required for cable attachment by allowing for the simulation of various postures and attachment settings, thereby optimizing cable length and reducing interference with the robot.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007694271000001
    Figure 0007694271000001
  • Figure 0007694271000002
    Figure 0007694271000002
  • Figure 0007694271000003
    Figure 0007694271000003
Patent Text Reader

Abstract

To provide a simulation technology which enables arrangement of a cable to be attached to a device to be designed in advance.SOLUTION: A simulation system 900 includes: an attitude detection part for detecting a first attitude at which a first joint between a first link L3 and a second link L4 is set at an angle that satisfies predetermined conditions in a first portion comprising the first link L3 and the second link L4 of a multi-joint robot; a guide attachment part for specifying attachment setting of one or more cable guides G2, G3 in the first portion; a cable attachment part for specifying one or more first attachment settings in a first sectional cable C2; and a simulation execution part for executing motion of the first portion to simulate motion of the first sectional cable C2. The first sectional cable C2 is a part of a cable C attached to the first portion having the first attitude through the cable guides G2, G3.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a simulation system, and more particularly, to a simulation technique for attaching a cable to a robot.

Background Art

[0002] Simulations using a computer are applied in various technical fields. As an example of using such a simulation in FA (Factory Automation), for example, Japanese Patent Application Laid-Open No. 2016-042378 (Patent Document 1) discloses a simulation of a control program executed in a controller that controls the movement of a machine.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] In the field of FA, there has been a demand for pre-designing the routing of cables attached to an industrial robot, which is an example of a machine. Specifically, conventionally, when routing the cables of an industrial robot, the user has been performing the work of determining an appropriate attachment position or cable length while actually operating the cables, but this work has taken a long time because it involves repeated trial and error. Therefore, there has been a demand for pre-designing the cable routing (such as the attachment position or cable length).

[0005] An object of the present disclosure is to provide a simulation technique that enables pre-designing the routing of cables attached to equipment.

Means for Solving the Problems

[0006] According to an embodiment, a simulation system for cable attachment in a multi-joint robot is provided. The simulation system includes a posture detection unit for detecting a first posture in a first part composed of a first link and a second link of the multi-joint robot, in which a first joint between the first link and the second link has an angle satisfying a predetermined condition, a guide attachment unit for specifying attachment settings of one or more cable guides in the first part, a cable attachment unit for specifying one or more first attachment settings in the first partial cable, and a simulation execution unit for executing the motion of the first part and simulating the movement of the first partial cable. The first partial cable is a part of the cable attached to the first part taking the first posture via the cable guide.

[0007] According to this disclosure, the simulation system can detect a first posture in which the first joint between the first link and the second link has an angle satisfying a predetermined condition, and simulate the movement of the first partial cable attached to the first part at the first posture.

[0008] In the above disclosure, the predetermined condition includes that the angle of the first joint is the maximum angle within the motion of the multi-joint robot or an angle within a first range from the maximum angle, or the minimum angle or an angle within a second range from the minimum angle.

[0009] According to this disclosure, the simulation system can simulate the movement of the first partial cable attached to the first part when the angle of the first joint is the maximum angle within the motion of the multi-joint robot or an angle within a first range from the maximum angle, or the minimum angle or an angle within a second range from the minimum angle.

[0010] In the above disclosure, the simulation system further includes a motion acquisition unit for acquiring the motion of the articulated robot. The posture detection unit detects a first posture from the time-series postures of the articulated robot acquired from the motion acquisition unit.

[0011] According to this disclosure, the simulation system can detect a first posture from the time-series postures of the articulated robot.

[0012] In the above disclosure, the cable attachment unit specifies one or more first attachment settings for relaying the first link and the second link when the first part takes the first posture.

[0013] According to this disclosure, the simulation system can specify a plurality of first attachment settings for relaying the first link and the second link when one part takes the first posture.

[0014] In the above disclosure, the simulation system further includes a robustness determination unit for determining the robustness of the cable. The robustness determination unit determines whether each of one or more first attachment settings that have passed the simulation has a predetermined robustness.

[0015] According to this disclosure, the simulation system can determine whether each of one or more first attachment settings that have passed the simulation has a predetermined robustness.

[0016] In the above disclosure, the posture detection unit detects a second posture in a second part composed of the second link and the third link of the articulated robot, where the second joint between the second link and the third link has an angle that satisfies a predetermined condition. The cable attachment unit determines one or more second attachment settings of the second partial cable in the second part taking the second posture. The simulation execution unit individually executes the simulation of the first partial cable and the simulation of the second partial cable.

[0017] According to this disclosure, the simulation system can execute simulations individually for each part.

[0018] In the above disclosure, the simulation system further includes a second simulation unit that executes a simulation of a link including two or more joints. The second simulation unit executes a simulation of the attachment setting for the entire cable using a first attachment setting that passed the simulation of the first partial cable and a second attachment setting that passed the simulation of the second partial cable.

[0019] According to this disclosure, the simulation system can execute a simulation of the attachment setting for the entire cable using the attachment settings that passed the simulation of each part.

[0020] In the above disclosure, executing a simulation including a first part and a second part includes executing the motions of the first part and the second part and detecting that the cable interfered with the multi-joint robot during the execution of the motions.

[0021] According to this disclosure, the simulation system can verify whether the cable interferes with the multi-joint robot within the simulation of the attachment setting.

[0022] In the above disclosure, the simulation system further includes an optimal setting output unit that selects and outputs a setting that makes the cable the shortest from among a plurality of settings based on the fact that there are a plurality of settings that passed the simulation of the attachment setting for the entire cable.

[0023] According to this disclosure, the simulation system can select a setting that makes the cable the shortest from among the attachment settings that satisfy the conditions.

[0024] According to another embodiment, a method executed by a simulation system is provided. The method includes detecting, at a first part consisting of a first link and a second link of a multi-joint robot, a first posture in which a first joint between the first link and the second link is at an angle satisfying a predetermined condition; specifying an attachment setting of one or more cable guides at the first part; specifying one or more first attachment settings in a first partial cable; and executing a motion of the first part and simulating a movement of the first partial cable. The first partial cable is a part of a cable attached to the first part taking the first posture via the cable guide.

[0025] According to this disclosure, it is possible to detect a first posture in which a first joint between a first link and a second link is at an angle satisfying a predetermined condition, and simulate a movement of a first partial cable attached to the first part in the first posture.

[0026] According to another embodiment, a program for causing a computer to execute the above method is provided.

[0027] According to this disclosure, it is possible to cause a computer to execute a process of detecting a first posture in which a first joint between a first link and a second link is at an angle satisfying a predetermined condition, and simulating a movement of a first partial cable attached to the first part in the first posture.

Advantages of the Invention

[0028] According to the present disclosure, the routing of the cable attached to the device can be designed in advance.

[0029] The above and other objects, features, aspects and advantages of the present disclosure will become apparent from the following detailed description of the present disclosure understood in conjunction with the accompanying drawings.

Brief Description of the Drawings

[0030]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

[0031] Hereinafter, embodiments of the technical idea according to the present disclosure will be described with reference to the drawings. In the following description, the same parts are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed descriptions thereof will not be repeated.

[0032] <A. Application Example> With reference to FIGS. 1 to 5, an example of a scene to which the present invention is applied will be described.

[0033] FIG. 1 schematically shows an example of an application scene of the simulation system 900 according to the present embodiment.

[0034] (a. Articulated Robot to be Simulated) The simulation system 900 can execute the simulation of the operation of the articulated robot 180 and the operation of the cable C provided in the articulated robot 180 in a 3D (Three Dimensional) space 170. In a certain aspect, the simulation system 900 may be realized by a single device, a plurality of devices, a virtual machine, or a system constructed on a cloud environment. In another aspect, the articulated robot 180 may be a horizontal articulated robot, a vertical articulated robot, or any other robot having a link mechanism.

[0035] The articulated robot 180 shown in FIG. 1 includes links L1, L2, L3, L4, L5, and L6. Each link is connected by a motor or the like, and the joints between the links have a joint structure. Each joint may be, for example, a joint of a yaw axis, a pitch axis, or a roll axis, or may be a composite joint.

[0036] Further, the articulated robot 180 includes a cable C for operating, for example, the tip link L6 to which a tool or the like is attached. The cable C can connect, for example, a control board provided on the link L1 and a tool at the tip of the link L6. Further, the cable C is attached to the housing of the articulated robot 180 via one or more cable guides attached to the housing of the articulated robot 180. In the example shown in FIG. 1, the cable C is attached to the articulated robot 180 by cable guides G1, G2, G3, and G4. The partial cable C1 is the portion between the cable guides G1 and G2 of the cable C. The partial cable C2 is the portion between the cable guides G2 and G3 of the cable C. The partial cable C3 is the portion between the cable guides G3 and G4 of the cable C. Note that the partial cables C1, C2, and C3 are actually a single cable C.

[0037] The cable is formed by covering, for example, a linear conductor constituting a signal line with an insulator. As the material of the insulator, although not limited, resin materials such as plastic, rubber, and vinyl can be used. As the material of the conductor, although not limited, a metal having conductivity can be used. By attaching the cable C to the articulated robot 180 via the cable guides G1, G2, G3, and G4, devices such as a robot controller can transmit and receive signals to and from the articulated robot 180 via the cable C.

[0038] Note that the configuration shown in FIG. 1 is an example, and the articulated robot that can be simulated by the simulation system 900 is not limited to this. In a certain aspect, the simulation system 900 can simulate the operation of an articulated robot having any number of joints, any type of link mechanism, and cables attached at any location.

[0039] The simulation system 900 may include, for example, an emulator function of the articulated robot 180 and an emulator function of a control device such as a PLC (Programmable Logic Controller). In this case, the simulation system 900 can read the program of the PLC and emulate the operations of the articulated robot 180 and the PLC. More specifically, the simulation system 900 causes the PLC to execute the program. The PLC sends commands to the articulated robot 180 (or its robot controller). The articulated robot 180 performs a predetermined motion in the 3D space 170 based on the received commands.

[0040] In addition, the simulation system 900 simulates the operation of the cable C due to the operation of the articulated robot 180 and the force applied to the cable C. By using the simulation system 900, the user can determine the attachment position of the cable without using the actual articulated robot 180.

[0041] Generally, the cable C used for the articulated robot 180 is expensive and requires a long time for routing work. Therefore, the simulation system 900 provides a function to support the prior design of an appropriate routing of the cable C attached to the actual articulated robot 180. Based on the design result by the simulation system 900, the user can reduce the cost (including the cost of the cable C and the working time) required for routing the cable C by executing the routing of the cable C. A more detailed method for determining the attachment position of the cable will be described with reference to FIG. 2 and later.

[0042] FIG. 2 is a diagram showing a first procedure for determining the attachment position of cable C. A procedure (first procedure) for determining the attachment position of a cable to two links connected via a single joint and a procedure (second procedure) for determining the attachment position of a cable to three or more links connected via a plurality of joints will be described. Further, a procedure (third procedure) for determining the attachment position of a cable to the entire multi-joint robot using the determination results of the attachment positions of these cables will be described.

[0043] (b. First procedure of simulation) First, the first procedure for attaching a cable to a part 240 composed of two links connected via a single joint will be described. Assume that a certain multi-joint robot includes links 260 and 265, and the links 260 and 265 are connected to each other via a joint 270. Also, assume that the cable is attached to the links 260 and 265 by a cable guide.

[0044] In this case, the simulation system 900 reads the program of the multi-joint robot and simulates the angle of the joint 270 of the multi-joint robot. Then, the simulation system 900 identifies the first posture and the second posture of the multi-joint robot when the joint 270 is at an angle that satisfies a predetermined condition.

[0045] The first posture is the posture of the part composed of the links 260 and 265 of the multi-joint robot when the joint 270 is at the maximum angle that can be taken within the motion or an angle within the first range from the maximum angle (for example, an angle of -3%, etc.). The second posture is the posture of the part composed of the links 260 and 265 of the multi-joint robot when the joint 270 is at the minimum angle that can be taken within the motion or an angle within the second range from the minimum angle (for example, an angle of +3%, etc.).

[0046] The first posture where the angle of the joint 270 is near the maximum and the second posture where the angle of the joint 270 is near the minimum are the postures in which the cable is most likely to be loaded among the postures that the multi-joint robot can take when the cable is attached to the part composed of the links 260 and 265 by the cable guide. Hereinafter, postures in which the cable is most likely to be loaded among the postures that the multi-joint robot can take, such as the above-described first posture and second posture, may be referred to as "difficult postures".

[0047] The simulation system 900 simulates the attachment positions of the cable and the cable guide with respect to the part composed of the links 260 and 265 taking the first posture in the 3D space. By doing so, the simulation system 900 obtains the first attachment setting (which may be plural) of the cable and the cable guide that does not interfere with the multi-joint robot. Hereinafter, the attachment setting of the cable and the cable guide may be simply referred to as "attachment setting". The attachment setting of the cable includes the location of the cable and the length of the cable. Also, the attachment setting of the cable guide includes the position of the cable guide and the posture of the cable guide. Further, the simulation system 900 specifies the second attachment setting (which may be plural) that does not interfere with the multi-joint robot in the second posture.

[0048] Next, the simulation system 900 reproduces the motion of the articulated robot and simulates the movement of the cable to determine whether the first mounting setting interferes with the articulated robot in other postures (even when the angle of joint 270 changes). Similarly, the simulation system 900 reproduces the motion of the articulated robot and simulates the movement of the cable to determine whether the second mounting setting interferes with the articulated robot in other postures (even when the angle of joint 270 changes). Also, the simulation system 900 can determine whether an excessive force is applied to the cable. Then, the simulation system 900 selects a mounting setting (which may be plural) that does not interfere with the articulated robot in all postures of the portion composed of links 260 and 265 from among one or more first mounting settings and one or more second mounting settings.

[0049] As described above, the simulation system 900 selects, as candidates for simulation, mounting settings that do not interfere with the articulated robot in the posture where the cable is most likely to be loaded. By doing so, the simulation system 900 does not need to simulate the movement of the cable exhaustively at all possible cable mounting positions, and can significantly reduce the man-hours for determining the cable mounting position.

[0050] (c. Second step of simulation) Next, a second procedure for attaching a cable to a portion 245 composed of three or more links connected via a plurality of joints will be described. Suppose an articulated robot has links 280, 285, and 290. Also, suppose that links 280 and 285 are connected to each other via joint 295, and links 285 and 290 are connected to each other via joint 297. Further, suppose that the cable is attached to links 280 and 290 by a cable guide.

[0051] In this case, the simulation system 900 reads the program of the articulated robot and simulates the angle of joint 270 of the articulated robot. Then, the simulation system 900 identifies the third posture and the fourth posture of the articulated robot in which joint 295 has an angle that satisfies a predetermined condition. Similarly, the simulation system 900 identifies the fifth posture and the sixth posture of the articulated robot in which joint 297 has an angle that satisfies a predetermined condition.

[0052] The third posture is the posture of the part composed of links 280, 285, and 290 of the articulated robot when joint 295 has the maximum angle that can be taken within the motion or an angle within the third range from the maximum angle (for example, an angle of -3%, etc.). The fourth posture is the posture of the part composed of links 280, 285, and 290 of the articulated robot when joint 295 has the minimum angle that can be taken within the motion or an angle within the fourth range from the minimum angle (for example, an angle of +3%, etc.).

[0053] The fifth posture is the posture of the part composed of links 280, 285, and 290 of the articulated robot when joint 295 has the maximum angle that can be taken within the motion or an angle within the fifth range from the maximum angle (for example, an angle of -3%, etc.). The sixth posture is the posture of the part composed of links 280, 285, and 290 of the articulated robot when joint 295 has the minimum angle that can be taken within the motion or an angle within the sixth range from the minimum angle (for example, an angle of +3%, etc.). That is, the simulation system 900 identifies the postures in which the angle of either joint 295 or 297 is near the maximum or near the minimum.

[0054] The third posture in which the angle of joint 295 is near the maximum, the fourth posture in which the angle of joint 295 is near the minimum, the fifth posture in which the angle of joint 297 is near the maximum, and the sixth posture in which the angle of joint 297 is near the minimum are the postures in which the cable is most likely to be loaded (difficult postures) among the postures that the articulated robot can take when the cable is attached to the part composed of links 280, 285, and 290 by a cable guide.

[0055] In the third posture, the simulation system 900 simulates the attachment positions of the cable and the cable guide with respect to the portion composed of the links 280, 285, and 290 that take the third posture. By doing so, the simulation system 900 obtains a third attachment setting (which may be plural) that does not interfere with the articulated robot. Similarly, the simulation system 900 identifies a fourth attachment setting, a fifth attachment setting, and a sixth attachment setting (which may be plural) that do not interfere with the articulated robot in each of the fourth posture, the fifth posture, and the sixth posture.

[0056] Next, the simulation system 900 reproduces the motion of the articulated robot and simulates the movement of the cable to determine whether the third attachment setting interferes with the articulated robot in other postures (even when the angles of the joints 295 and 297 change). Similarly, the simulation system 900 reproduces the motion of the articulated robot and simulates the movement of the cable to determine whether each of the fourth attachment setting, the fifth attachment setting, and the sixth attachment setting interferes with the articulated robot in other postures (even when the angles of the joints 295 and 297 change). Note that the simulation system 900 can also determine whether an excessive force is applied to the cable. Then, the simulation system 900 selects an attachment setting (which may be plural) that does not interfere with the articulated robot in all postures of the portion composed of the links 280, 285, and 290 from among one or more of the third, fourth, fifth, and sixth attachment settings.

[0057] (d. Third step of simulation) Next, a third step of determining the attachment position of the cable with respect to the entire articulated robot using the determination results of the attachment positions of the cable selected in the above first and second steps will be described.

[0058] For example, assume that the simulation system 900 selects the mounting settings (which may be plural) of the partial cable C1 and the cable guides G1, G2 for the first part consisting of the links L1, L2, L3 shown in FIG. 1 using the second procedure. Also, assume that the simulation system 900 selects the mounting settings (which may be plural) of the partial cable C2 and the cable guides G3, G4 for the second part consisting of the links L3, L4 shown in FIG. 1 using the first procedure. Further, assume that the simulation system 900 selects the mounting settings (which may be plural) of the partial cable C3 and the cable guides G3, G4 for the third part consisting of the links L4, L5, L6 shown in FIG. 1 using the second procedure.

[0059] In this case, the joint part between the first part and the second part is the cable guide G2, and the joint part between the second part and the third part is the cable guide G3. Therefore, the simulation system 900 selects the mounting setting in which the position and orientation of the cable guide G2 match from among the mounting settings in the first part and the mounting settings in the second part. Also, the simulation system 900 selects the mounting setting in which the position and orientation of the cable guide G3 match from among the mounting settings in the second part and the mounting settings in the third part. That is, the simulation system 900 selects a combination of connectable mounting settings (combined mounting settings) (which may be plural). In a certain aspect, the simulation system 900 may include the cable length as a condition when determining the combined mounting settings.

[0060] The simulation system 900 can reproduce the motion of the multi-joint robot 180 (execute an overall test) and determine whether the cables and cable guides in the selected combined mounting settings interfere with the housing of the multi-joint robot 180.

[0061] In this way, the simulation system 900 first selects the mounting settings of the cables and cable guides at each part of the articulated robot 180 (the first part consisting of L1, L2, L3, the second part consisting of L3, L4, and the third part consisting of L4, L5, L6). Next, the simulation system 900 selects a connectable combination (combined mounting setting) from among the mounting settings of each part. Then, the simulation system 900 can simulate the movement of the cable for the combined mounting setting to determine whether the cable and cable guide interfere with the housing of the articulated robot 180. The simulation system 900 can also determine whether excessive force is applied to the cable. In addition, when there are multiple combined mounting settings that pass the overall test, the simulation system 900 can select the combined mounting setting with the minimum cable length.

[0062] (e. Parameters of the mounting setting) FIG. 3 is a diagram showing an example of the parameters of the mounting setting. Taking the links L3, L4, L5, L6 of the articulated robot 180 as an example, the parameters of the mounting setting will be described.

[0063] The mounting setting includes the position and orientation of the cable guide and the length of the cable between the cable guides. For example, assume that the simulation system 900 has obtained the difficult posture of the part consisting of the links L3 and L4. In this case, the simulation system 900 obtains the mounting settings of the cable guides G2 and G3 for the part consisting of the links L3 and L4 that take the difficult posture. The mounting settings of the cable guides G2 and G3 can include two parameters, position and orientation. The position can be defined by the coordinates of the cable guide in the 3D space. Also, the orientation can be defined by the angles of the yaw axis, pitch axis, and roll axis of the cable guide. In addition, the simulation system 900 obtains the setting of the length of the partial cable C2 passing through the cable guides G2 and G3.

[0064] In the same procedure, assume that the simulation system 900 obtains the difficult postures of the part composed of the links L4, L5, and L6. In this case, the simulation system 900 obtains the mounting settings of the cable guides G3 and G4 for the part composed of the links L4, L5, and L6 that take the difficult postures. Further, the simulation system 900 obtains the setting of the length of the partial cable C3 passing through the cable guides G3 and G4.

[0065] For one difficult posture, the simulation system 900 can select multiple mounting settings where the cables and cable guides do not interfere with the articulated robot 180 by simulating the mounting positions of the cables and cable guides in the 3D space.

[0066] FIG. 4 is a diagram showing an example of the mounting position of the cable guide. In the diagram shown in FIG. 4, the simulation system 900 mounts the cable guide G3 on the 3D space 170. First, the simulation system 900 can determine the coordinates of the cable guide G3 in the 3D space 170. Next, the simulation system 900 determines the posture (angles of the yaw axis, pitch axis, and roll axis) of the cable guide G3. By doing so, the simulation system 900 can mount the cable guide G3 on the link L4.

[0067] FIG. 5 is a diagram showing an example of the verification of the mounting setting. Actually, there can be multiple mounting settings. For example, assume that the simulation system 900 obtains the mounting settings of the partial cables C2 and the cable guides G2 and G3 for the part composed of the links L3 and L4. At this time, the simulation system 900 selects a combination of the possible mounting positions and postures of the cable guides G2 and G3 and the length of the partial cable C2. Next, among these combinations, the simulation system 900 includes those where the cables and cable guides do not interfere with the articulated robot 180 in the mounting setting.

[0068] <B. System Configuration> Next, with reference to FIGS. 6 to 9, a control unit to which the present invention is applicable, an apparatus for realizing the simulation system 900, and each function of the simulation system 900 will be described.

[0069] FIG. 6 is a diagram schematically showing a control system 2 simulated by a simulation system 900 according to the present embodiment. The control system 2 includes, for example, an articulated robot 180 or the like and may constitute a part of a FA line.

[0070] The control system 2 includes a PLC 200, a robot controller 310, and servo motor drivers 531 and 532. The PLC 200, the robot controller 310, and the servo motor drivers 531 and 532 are connected in a daisy chain via a field network 22. For example, EtherCAT (registered trademark) is adopted for the field network 22. However, the field network 22 is not limited to EtherCAT. The apparatus 100 may be connected to the PLC 200 via a network 80 (see FIG. 7). Any wired or wireless communication means may be adopted for the network 80. The PLC 200 and the apparatus 100 communicate according to, for example, USB (Universal Serial Bus). For example, the apparatus 100 may include functions of the simulation system 900.

[0071] The PLC 200 executes a designed control program based on field values including output values of sensors from the field network 22, and gives target values to the robot controller 310 or the servo motor drivers 531 and 532 according to the execution results, thereby controlling devices related to the conveyance of the robot 30 and the conveyor 230. The PLC 200, the robot controller 310, the servo motor drivers 531 and 532, and the robot hand 210 each have timers 90, 91, 92, 93, and 94 synchronized with each other in time. Among the devices, the transmission and reception timings of data including control commands are synchronized by operating based on these timers.

[0072] Servo motor drivers 531 and 532 drive the servo motors 41 and 42 of the conveyor 230. Encoders 236 and 238 are provided on the rotating shafts of the servo motors 41 and 42. The encoder outputs the position (rotation angle), rotation speed, cumulative rotation count, etc. of the servo motor to the PLC 200 as the feedback value of the servo motors 41 and 42.

[0073] The robot 30 and the conveyor 230 move the workpiece 232 while cooperating with each other. Here, for simplicity of explanation, the movement of the workpiece 232 is described, but the functions of the robot 30 and the conveyor 230 are not limited to the movement of the workpiece 232. For example, the functions of the robot 30 and the conveyor 230 may be the processing of the workpiece 232 placed on the tray 9 by the robot 30.

[0074] In FIG. 6, as an example of the drive device of the robot 30, the servo motors 1301, 1302, 1033, and 1304 provided in the robot 30 (hereinafter, also collectively referred to as "robot servo motors") and the robot controller 310 that drives the robot servo motors are illustrated. Similarly, as an example of the drive device of the conveyor 230, the servo motor drivers 531 and 532 that drive the servo motors 41 and 42 provided in the conveyor 230 are illustrated.

[0075] The robot controller 310 drives the robot servo motors of the robot 30. Encoders (not shown) are provided on the rotating shafts of the respective robot servo motors. The encoder outputs the position (rotation angle), rotation speed, cumulative rotation count, etc. of the servo motor to the robot controller 310 as the feedback value of the robot servo motor.

[0076] The servo motor drivers 531 and 532 drive the corresponding servo motors 41 and 42 according to the command values. The control system 2 further includes a photoelectric sensor 6 and an openable / closable stopper 8 associated with the conveyor 230. The photoelectric sensor 6 detects that the tray 9 provided on the conveying surface of the conveyor 230 has reached in front of a predetermined workpiece tracking area, and transmits the detection value to the PLC 200. The stopper 8 performs a closing operation to stop (fix) the tray 9 that has reached within the tracking area according to the command value.

[0077] The robot hand 210 of the robot 30 is attached according to the process. The types of the robot hand 210 include, for example, parallel hands, multi-finger hands, multi-finger joint hands, etc., but are not limited thereto, and may also include types that pick and place the workpiece 232 by, for example, an adsorption method.

[0078] The robot 30 performs pick and place according to the command value from the robot controller 310. Specifically, the robot 30 picks the workpiece 232 placed on the tray 9 on the conveyor 230 with the robot hand 210, moves the workpiece 232 to the table 55 at a predetermined position while holding it, and places (places) it on the table 55. In the robot hand 210, the opening and closing operation of the hand for picking or placing the workpiece 232 is controlled according to the command value from the robot controller 310.

[0079] FIG. 7 is a schematic diagram showing an example of the unit configuration of the control system 2. The control system 2 includes a PLC 200, servo motor drivers 531 and 532 and an IO remote terminal 5 connected to the PLC 200 via a field network 22, a robot controller 310 connected to the robot hand 210 and the arm 301 via a cable 340, and, for example, a photoelectric sensor 6, a proximity sensor 87 and encoders 236 and 238 which are IO devices provided in the field and the stopper 8.

[0080] The PLC 200 includes arithmetic units 13 that execute main arithmetic processing, one or more IO units 14, and special units 17. These units are configured to exchange data with each other via the system bus 81 and are supplied with power from the power supply unit 12. An apparatus 100 can be connected to the arithmetic unit 13.

[0081] The IO unit 14 collects detection values 61, 71, 237, and 239 from IO devices including the photoelectric sensor 6, proximity sensor 87 of the stopper 8, and encoders 236 and 238. The proximity sensor 87 non - contact detects that the tray 9 has approached the stopper 8 to a predetermined distance. The detection values from each IO device are set (written) in, for example, the memory provided in the IO unit 14. The arithmetic unit 13 executes the arithmetic operations of the control program using the values collected by the IO unit 14 and sets (writes) the values of the arithmetic results in the memory of the IO unit 14. The peripheral devices or IO devices operate by referring to the values in the memory of the IO unit 14.

[0082] The field network 22 may be connected to the robot controller 310, servo - motor drivers 531 and 532, and the IO remote terminal 5. The IO remote terminal 5 includes a communication coupler 52 for performing processing related to data transmission on the field network 22 and one or more IO units 53. These units are configured to exchange data with each other via the remote IO terminal bus 51.

[0083] The servo - motor drivers 531 and 532 are connected to the arithmetic unit 13 via the field network 22 and drive the servo motors 41 and 42 according to the command values from the arithmetic unit 13. The arithmetic unit 13 generates these command values based on the detection values 237 and 239 from the encoders 236 and 238.

[0084] The arithmetic unit 13 refers to the detection values from the above-described IO devices and executes a predetermined control program to cause the robot 30 to perform pick-and-place. Specifically, when the arithmetic unit 13 detects from the detection value 61 of the photoelectric sensor 6 and the detection value 71 of the proximity sensor 87 that the workpiece 232 has approached a predetermined tracking area, it generates a control command 211 for the arm 301 of the robot that performs pick-and-place and a control command 222 for the robot hand 210, and outputs the control command 222 to the robot 30 via the cable 340 through the robot controller 310.

[0085] The simulation system 900 can determine the attachment positions of the cables and cable guides in any articulated robot included in the control system 2 shown in FIGS. 6 and 7, and simulate the movement of the cables. Also, in a certain aspect, the simulation system 900 can determine whether the cables and cable guides attached to the articulated robot interfere with each device (including those other than the articulated robot) shown in FIGS. 6 and 7 by executing the simulation.

[0086] FIG. 8 is a diagram showing an example of the device 800 that constitutes the simulation system 900. The device 800 is an information processing device such as a computer and can operate as the simulation system 900. In a certain aspect, the simulation system 900 may be realized by a plurality of devices 800, a system including at least a part of the hardware configuration of the device 800, a virtual machine on a cloud environment including at least a part of the hardware configuration of the device 800, etc. Also, the device 800 may be used as the device 100 shown in FIG. 7.

[0087] Device 800 includes, as main components, a processor 102 that executes an operating system (OS) and programs operating on the OS, a main memory 104 that provides a working area for storing data necessary for program execution by the processor 102, an operation unit 106 (operation reception unit) that receives user operations such as a keyboard and a mouse, an output unit 108 that outputs processing results such as a display 109, various indicators, and a printer, a network interface 110 connected to various networks including network 80, an optical drive 112, a local communication interface 116 that communicates with external devices, and a storage 111. These components are connected to enable data communication via an internal bus 118 or the like.

[0088] Device 800 has an optical drive 112 and may read various programs from a computer-readable recording medium 114 including an optical recording medium (e.g., DVD (Digital Versatile Disc), etc.) that non-transiently stores computer-readable programs, and install the various programs in the storage 111 or the like.

[0089] The various programs executed on device 800 may be installed in device 800 via the computer-readable recording medium 114, or may be installed in device 800 from a server device (not shown) on the network via the network interface 110.

[0090] The storage 111 is composed of, for example, an HDD (Hard Disk Drive) or an SSD (Flash Solid State Drive), etc., and stores programs executed by the processor 102. More specifically, the storage 111 stores an OS 120 and an integrated development environment 130. The integrated development environment 130 can be realized as an application operating on the OS 120.

[0091] The integrated development environment 130 provides the functions of the simulation system 900 described with reference to FIGS. 1 to 5. That is, the functions of the simulation system 900 can be realized by the processor 102 executing the integrated development environment 130 deployed in the main memory 104.

[0092] In a certain aspect, the simulation system 900 may be realized as an add-in of the integrated development environment 130. Also, in other aspects, the simulation system 900 may be realized as a single application. Furthermore, in other aspects, the device 800 may realize some or all of the functions of the integrated development environment 130 using an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array), etc.

[0093] FIG. 9 is a diagram showing an example of the functional configuration of the simulation system 900. Each functional configuration shown in FIG. 9 can be realized as a program component. In this case, each functional configuration can operate as software on the hardware of the device 800.

[0094] The simulation system 900 includes, as functional components, a motion acquisition unit 901, a part simulation unit 902, a combination selection unit 903, a simulation unit 904 for the combination, and a global optimal setting output unit 905. Also, the part simulation unit 902 includes a difficult posture detection unit 906, a guide attachment unit 907, a cable attachment unit 908, a simulation execution unit 909, and a robustness determination unit 910.

[0095] The motion acquisition unit 901 acquires the time-series motion of the multi-joint robot. For example, the motion acquisition unit 901 acquires the program of the multi-joint robot, analyzes the program, or operates the multi-joint robot in 3D space based on the program to acquire the motion of the multi-joint robot.

[0096] The part simulation unit 902 performs simulations for each part of the articulated robot (such as the part composed of links L3 and L4 in FIG. 1), and determines the attachment settings of cables and cable guides that do not interfere with the housing of the articulated robot at each part of the articulated robot. The part simulation unit 902 executes the first and second procedures of the simulation described with reference to FIG. 1.

[0097] The difficult posture detection unit 906 detects difficult postures at each part of the articulated robot. Taking the articulated robot 180 shown in FIG. 1 as an example, the difficult posture detection unit 906 detects the difficult postures of the part composed of L1, L2, and L3, the difficult postures of the part composed of L3 and L4, and the difficult postures of the part composed of L4, L5, and L6.

[0098] The guide attachment unit 907 attaches cable guides to each part of the articulated robot taking a difficult posture. More specifically, the guide attachment unit 907 can detect by brute force the attachment settings of cable guides applicable to each part of the articulated robot taking a difficult posture. The attachment settings of the cable guide may include, as parameters, the coordinates of the cable guide in 3D space and the posture of the cable guide (angles of the yaw axis, pitch axis, and roll axis). The guide attachment unit 907 can specify the attachment settings of one or more cable guides for each part of the articulated robot.

[0099] The cable attachment unit 908 attaches cables to each part of the articulated robot taking a difficult posture. More specifically, the guide attachment unit 907 attaches the cable so as to pass through the cable guide attached by the guide attachment unit 907. The attachment settings of the cable include, as parameters, the position and length of the cable. The cable attachment unit 908 can specify the attachment settings of one or more cables for each part of the articulated robot.

[0100] The simulation execution unit 909 individually executes simulations of each part of the multi-joint robot (executes the motion of each part of the multi-joint robot) using the installation settings selected by the guide attachment unit 907 and the cable attachment unit 908, and simulates the movement of the cable. Taking the multi-joint robot 180 as an example, the simulation execution unit 909 individually executes simulations of the part composed of links L1, L2, and L3, the part composed of links L3 and L4, and the part composed of links L4, L5, and L6. The simulation execution unit 909 verifies whether the cable or cable guide interferes with the housing of the multi-joint robot and / or whether excessive force is applied to the cable in each installation setting. When testing a certain installation setting, if the cable or cable guide does not interfere with the housing of the multi-joint robot, the simulation execution unit 909 may determine that the installation setting has passed the simulation (test).

[0101] The robustness determination unit 910 determines whether each installation setting that has passed the simulation by the simulation execution unit 909 has a predetermined robustness. The predetermined robustness means, for example, satisfying the condition that the cable does not interfere with the housing of the multi-joint robot and excessive force is not applied to the cable even when the length of the cable changes to a certain extent. As an example, when the predetermined robustness is "20 mm", assume that the cable length included in the cable installation setting is "N mm". In this case, if the cable length is "N + 20 mm" or "N - 20 mm" and the cable does not interfere with the housing of the multi-joint robot and excessive force is not applied to the cable, the robustness determination unit 910 determines that the cable installation setting has the predetermined robustness.

[0102] The part simulation unit 902 outputs to the combination selection unit 903 the installation settings (there may be multiple) of each part that have passed the simulation and have a predetermined robustness for each part.

[0103] The combination selection unit 903 selects a combination of mounting settings for each part obtained from the part simulation unit 902. Taking the multi-joint robot 180 as an example, when the combination selection unit 903 combines the mounting settings of the parts consisting of L1, L2, and L3 with the mounting settings of the parts consisting of L3 and L4, it combines those with the same mounting position (coordinates and posture) of the cable guide G2. Similarly, when combining the mounting settings of the parts consisting of L3 and L4 with the mounting settings of the parts consisting of L4, L5, and L6, it combines those with the same mounting position (coordinates and posture) of the cable guide G3. In this way, the combination selection unit 903 selects a combination of the mounting settings for each part (selects a combined mounting setting).

[0104] The simulation unit 904 for the combination executes a simulation (overall test) for the combined mounting setting selected by the combination selection unit 903. The simulation unit 904 for the combination executes the motion of the multi-joint robot. If the cable or cable guide does not interfere with the entire multi-joint robot and no excessive force is applied to the cable, it can be determined that the combined mounting setting to be tested has passed the simulation (overall test).

[0105] The global optimal setting output unit 905 selects the one with the shortest cable length from the combined mounting settings that have passed the simulation (test) and outputs the selected combined mounting setting as the global optimal setting. The user can perform wiring on the actual multi-joint robot based on the global optimal setting.

[0106] <C. Procedure and Screen of Simulation> Next, with reference to FIGS. 10 to 19, the procedure for obtaining difficult postures, the procedure for mounting cables and cable guides, and the screen displayed on the display 109 will be described.

[0107] FIG. 10 is a diagram showing an example of a difficult posture in a multi-joint robot. The simulation system 900 reads data of the multi-joint robot and a program to reproduce the motion of the multi-joint robot in a 3D space in order to detect the difficult posture of the multi-joint robot.

[0108] In the example of the display of FIG. 10, the display 109 is displaying the operation of the multi-joint robot 180 shown in FIG. 1. In a certain situation, the simulation system 900 may display on the display 109 a reproduction scene of the motion of the multi-joint robot as shown in FIG. 10.

[0109] The reproduction scene 1005 of the simulation is displaying the reference pose of the multi-joint robot 180. The joint between the links L3 and L4 of the multi-joint robot 180 can rotate within the range of the movable range 1020. The movable range 1020 is not the physical movable range of the joint between the links L3 and L4, but the movable range within the motion that the multi-joint robot 180 executes based on the program.

[0110] The reproduction scene 1010 of the simulation is displaying a state in which the joint between the links L3 and L4 is rotated counterclockwise the most from the reference position within the motion. The reproduction scene 1015 of the simulation is displaying a state in which the joint between the links L3 and L4 is rotated clockwise the most from the reference position within the motion. The states shown in the reproduction scenes 1010 and 1015 of the simulation are the states in which the cable is twisted the most (the state in which the cable is most likely to be stressed) between the links L3 and L4, and correspond to the first difficult posture and the second difficult posture described with reference to FIG. 2.

[0111] The simulation system 900 can detect the first difficult posture and the second difficult posture by reading the program of the articulated robot 180 and reproducing the motion of the articulated robot 180. Further, the simulation system 900 may display, on the display 109, the reproduction of the motion of the articulated robot 180 and the detected difficult postures, such as the reproduction scenes 1005, 1010, and 1015 of the simulation, for presentation to the user.

[0112] FIG. 11 is a diagram showing an example of the state of detecting a difficult posture. The simulation system 900 reproduces the motion of the articulated robot and records the angle of each link at each time stamp (in time series). Note that the angle of each link may be expressed as the angle of each joint. In the example of FIG. 11, the simulation system 900 is reproducing the motion of the articulated robot 180.

[0113] The motion reproduction scene 1101 is an example of the display when the angle between link L3 and link L4 is maximum. The simulation system 900 reproduces the motion of the articulated robot 180 and records the angle 1111 of each link at the time stamp of this scene in the motion reproduction scene 1101.

[0114] The motion reproduction scene 1102 is an example of the display when the angle between link L3 and link L4 is minimum. The simulation system 900 reproduces the motion of the articulated robot 180 and records the angle 1112 of each link at the time stamp of this scene in the motion reproduction scene 1102.

[0115] The simulation system 900 can detect a difficult posture by mutually comparing the angles between links at each time stamp. For example, the simulation system 900 can calculate the angle between link L3 and link L4 based on the angle "211.3345" of link L3 and the angle "-72.15571" of link L4 in the reproduction scene 1101 of the simulation. The simulation system 900 can detect, as a difficult posture in the part composed of links L3 and L4, a posture in which the angle between link L3 and link L4 becomes maximum or minimum during the simulation, or a posture in which the angle between link L3 and link L4 becomes near the maximum or near the minimum during the simulation.

[0116] FIG. 12 is a diagram showing an example of time-series data of the angles of each joint. The time-series data of the joint angles shown in FIG. 12 includes the angle of the joint of adjacent link L n and the angle of the joint of link L n+1 . Note that the joint of link L n may be, for example, a joint connecting link L n-1 and L n . Further, the joint of link L n+1 may be, for example, a joint connecting link L n and L n+1 .

[0117] In the example of FIG. 12, at time stamp "2", the angle of the joint of link L n becomes the maximum value "90", and at time stamp "3", the angle of the joint of link L n+1 becomes the maximum value "90". For example, when attaching a cable to a part composed of links connected via the joint of link L n and the joint of link L n+1 , the number of difficult postures increases by the number of links (the angle of the joint of link L n becomes the maximum and minimum values, and the angle of the joint of link L n+1 becomes the maximum and minimum values).

[0118] FIG. 13 is a diagram showing an example of the cable robustness condition. Assume that the simulation system 900 executes a simulation by attaching a cable between links L3 and L4 of the articulated robot 180 while changing the setting (cable length). As a result, assume that cables shorter than "220 mm" are disqualified and cables longer than "240 mm" are qualified. Here, passing means that the cable does not interfere with the housing of the articulated robot 180, or that the cable does not interfere with the housing of the articulated robot 180 and no excessive force is applied to the cable.

[0119] Here, assume that the robustness condition is "40 mm". In this case, even if the cable length of a certain mounting setting is made "40 mm" longer or shorter than the original length obtained by simulation, the said mounting setting must be passable in the simulation.

[0120] When the cable length of a certain mounting setting is "240 mm", if the cable length is made "40 mm" shorter than the original length, it becomes "200 mm", and the said mounting setting fails the simulation. Therefore, the simulation system 900 excludes the mounting setting of the cable between links L3 and L4 with a cable length of "240 mm" from the candidates for the mounting setting of the cable on the grounds that it does not satisfy the robustness. The simulation system 900 includes the mounting settings with a cable length of "280 mm" or more in the candidates for the mounting setting of the cable between links L3 and L4 on the grounds that they satisfy the robustness.

[0121] In a certain aspect, the simulation system 900 may obtain the robustness condition via the operation unit 106 or the network interface 110.

[0122] FIG. 14 is a diagram showing a first example of a display of a simulation of attachment of a cable and a cable guide. On screen 1400, simulation system 900 is attaching a cable and a cable guide to articulated robot 180. Simulation system 900 can display on display 109 a simulation screen (animation) of the attachment positions of the cable and the cable guide shown in FIGS. 14 to 19. By checking these simulation screens, the user can check the attachment image of the cable and the cable guide.

[0123] The simulation system 900 fixes the part consisting of links L3 and L4 of the articulated robot 180 in a difficult posture. Next, the simulation system 900 attaches partial cable C2 and cable guides G2 and G3 to the part consisting of links L3 and L4. Further, the simulation system 900 verifies whether the partial cable C2 and the cable guides G2 and G3 interfere with the housing of the articulated robot 180 or whether excessive force is applied to the cable.

[0124] FIG. 15 is a diagram showing a second example of a display of a simulation of attachment of a cable and a cable guide. On screen 1500, the simulation system 900 is changing the attachment position (position and length) of the partial cable C2 and the attachment positions (position and posture) of the cable guides G2 and G3 from screen 1400.

[0125] FIG. 16 is a diagram showing a third example of a display of a simulation of attachment of a cable and a cable guide. On screen 1600, the simulation system 900 is further changing the attachment position (position and length) of the partial cable C2 and the attachment positions (position and posture) of the cable guides G2 and G3 from screen 1400 and screen 1500.

[0126] The simulation system 900 verifies the mounting settings of a plurality of considered partial cables C2 and cable guides G2, G3 for a part composed of links L3, L4 that take difficult postures. Then, the simulation system 900 can display the states of these verifications on the display 109.

[0127] FIG. 17 is a diagram showing a fourth example of the display of the cable and cable guide mounting simulation. On the screen 1700, the simulation system 900 fixes a part composed of links L4, L5, L6 of the articulated robot 180 in a difficult posture (link L6 is not shown). Next, the simulation system 900 attaches the partial cable C3 and the cable guides G3, G4 to the part composed of links L4, L5, L6. Further, the simulation system 900 verifies whether the partial cable C3 and the cable guides G3, G4 interfere with the housing of the articulated robot 180 and whether excessive force is applied to the cables.

[0128] FIG. 18 is a diagram showing a fifth example of the display of the cable and cable guide mounting simulation. On the screen 1800, the simulation system 900 changes the mounting positions (position and length) of the partial cable C3 and the mounting positions (position and posture) of the cable guides G3, G4 from the screen 1700.

[0129] As described with reference to FIGS. 14 to 18, the simulation system 900 verifies the mounting settings of a plurality of cables and cable guides for each part of the articulated robot 180. Then, the simulation system 900 can display the states of these verifications on the display 109.

[0130] FIG. 19 is a diagram showing a sixth example of a display of a cable and cable guide attachment simulation. The simulation system 900 may perform a simulation of a cable including a connector 1930 of an electric chuck attached to the articulated robot 180. The screen 1910 displays a simulation of a normal cable. The screen 1920 displays a simulation of a cable including the connector 1930.

[0131] <D. Flowchart> Next, with reference to FIGS. 20 and 21, the internal processing flow of the simulation system 900 will be described. In a certain aspect, the processor 102 may read a program for performing the processing of FIGS. 20 and 21 from the storage 111 into the main memory 104 and execute the program. In other aspects, part or all of the processing may also be realized as a combination of circuit elements configured to execute the processing.

[0132] FIG. 20 is a flowchart showing an example of a cable simulation procedure in the simulation system 900. The following processing will be described by taking a cable attached to the articulated robot 180 as an example.

[0133] In step S2005, the simulation system 900 acquires the motion of the articulated robot 180. In a certain aspect, the simulation system 900 may acquire the motion of the articulated robot 180 by analyzing the program of the articulated robot 180. In other aspects, the simulation system 900 may acquire the motion of the articulated robot 180 by operating the articulated robot 180 in a 3D space based on the program of the articulated robot 180.

[0134] In step S2010, the simulation system 900 generates a combination of joint angles in time series. The process of step S2010 corresponds to the process described with reference to FIGS. 11 and 12. The simulation system 900 generates a combination of joint angles in time series for each of the links L1, L2, L3, L4, L5, L6 (joints) in the multi-joint robot 180.

[0135] In step S2015, the simulation system 900 outputs the acquired combination of joint angles in time series. In a certain aspect, the simulation system 900 may output the acquired combination of joint angles in time series to the main memory 104 or the storage 111. Also, in another aspect, the simulation system 900 may output the acquired combination of joint angles in time series to the display 109 as well.

[0136] In step S2020, the simulation system 900 executes a simulation in a difficult posture for each partial cable (partial cables C1, C2, C3 in FIG. 1). This corresponds to the first procedure or the second procedure in the simulation described with reference to FIG. 2. Details of step S2020 will be described later with reference to FIG. 21.

[0137] In step S2025, the simulation system 900 outputs a set of locally optimal settings that passed the simulation in a difficult posture for each partial cable. As an example, the set of locally optimal settings for the partial cable C2 may include the passing settings of the partial cable C2 (and cable guides G2, G3) in the first difficult posture of the part composed of the links L3, L4 and the passing settings of the partial cable C2 (and cable guides G2, G3) in the second difficult posture of the part composed of the links L3, L4.

[0138] In a certain situation, the simulation system 900 may output a set of local optimizations for each partial cable to the main memory 104 or the storage 111. Also, in other situations, the simulation system 900 may output a set of local optimizations for each partial cable to the display 109 as well.

[0139] In step S2030, the simulation system 900 executes a test of combinations of partial cables. That is, the simulation system 900 executes a test of the entire cable C (partial cable C1 + partial cable C2 + partial cable C3). The process of step S2030 corresponds to the third procedure described with reference to FIG. 2.

[0140] In step S2035, the simulation system 900 outputs a set of applicable settings that passed the test of combinations of partial cables. The set of applicable settings that passed the test of combinations of partial cables is the passing settings of cable C (including the length (or length and position) of all partial cables, the position and orientation of all cable guides), and can also be said to be the installation settings of the entire cable C.

[0141] In a certain situation, the simulation system 900 may output a set of applicable settings that passed the test of combinations of partial cables to the main memory 104 or the storage 111. Also, in other situations, the simulation system 900 may output a set of applicable settings that passed the test of combinations of partial cables to the display 109 as well.

[0142] In step S2040, the simulation system 900 executes a simulation of the motion of the local optimal setting in which the cable length for each partial cable is the shortest among the set of applicable settings that passed the test of combinations of partial cables.

[0143] The local optimal setting where the cable length for each partial cable is the shortest is the setting where the length of cable C is the shortest. That is, the simulation system 900 selects, from the set of applicable settings, the applicable setting that results in the shortest length of cable C, and uses the selected applicable setting (the cable attachment setting) to execute the motion of the articulated robot 180. Then, the simulation system 900 determines whether the cable interferes with the articulated robot 180 (whether it passes the test).

[0144] In step S2045, the simulation system 900 determines whether the local optimal setting passes the simulation in step S2040. If the simulation system 900 determines that the local optimal setting passes the simulation in step S2040 (YES in step S2045), the control proceeds to step S2050. Otherwise (NO in step S2045), the simulation system 900 returns the control to step S2040. When the control returns to step S2040, the simulation system 900 selects the applicable setting that results in the next shortest length of cable C after the previously tested applicable setting, and executes the test for the applicable setting. That is, the simulation system 900 preferentially tests the ones with shorter lengths of cable C from the set of applicable settings.

[0145] In step S2050, the simulation system 900 outputs the applicable setting that passed the test in step S2045 as the global optimal setting. The global optimal setting is the one with the shortest length of cable C among the set of applicable settings that passed the test in step S2045. Also, the global optimal setting includes the setting of the length (or length and position) for each partial cable (partial cables C1, C2, C3), and the position and orientation for each cable guide (cable guides G1, G2, G3, G4).

[0146] FIG. 21 is a flowchart showing an example of the subroutine of step S2020. In step S2105, the simulation system 900 executes the processes after step S2110 for all joints.

[0147] In step S2110, the simulation system 900 selects all the attachment simulation results in the first difficult posture. The attachment simulation results in the first difficult posture are the results of the first procedure or the second procedure described with reference to FIG. 2. For example, the attachment simulation results in the first difficult posture of the part composed of links L3 and L4 include the attachment settings of the partial cable C2 and the attachment settings of the cable guides G2 and G3 for the links L3 and L4 taking the first difficult posture.

[0148] In step S2115, the simulation system 900 selects all the attachment simulation results in the second difficult posture. The attachment simulation results in the second difficult posture are the results of the first procedure or the second procedure described with reference to FIG. 2. For example, the attachment simulation results in the second difficult posture of the part composed of links L3 and L4 include the attachment settings of the partial cable C2 and the attachment settings of the cable guides G2 and G3 for the links L3 and L4 taking the second difficult posture.

[0149] In step S2120, the simulation system 900 obtains all the pass settings from the attachment simulation results in the first difficult posture. For example, the pass settings in the first difficult posture of the part composed of links L3 and L4 include the attachment settings of the partial cable C2 and the attachment settings of the cable guides G2 and G3 where the cables and the cable guides do not interfere with the housing of the multi-joint robot 180. Or, the pass settings in the first difficult posture of the part composed of links L3 and L4 include the attachment settings of the partial cable C2 and the attachment settings of the cable guides G2 and G3 where the cables and the cable guides do not interfere with the housing of the multi-joint robot 180 and no excessive force is applied to the cables.

[0150] In step S2125, the simulation system 900 obtains all the pass settings from the attachment simulation results in the second difficult posture. For example, the pass settings in the second difficult posture of the part composed of links L3 and L4 include the attachment settings of the partial cable C2 and the attachment settings of the cable guides G2 and G3 where the cables and cable guides do not interfere with the housing of the multi-joint robot 180. Or, the pass settings in the second difficult posture of the part composed of links L3 and L4 include the attachment settings of the partial cable C2 and the attachment settings of the cable guides G2 and G3 where the cables and cable guides do not interfere with the housing of the multi-joint robot 180 and no excessive force is applied to the cables.

[0151] In step S2130, the simulation system 900 compares the pass settings of adjacent parts and extracts the pass settings where the positions and postures of the cable guides are common. For example, the simulation system 900 compares the pass settings of the part composed of links L1, L2, and L3 in the multi-joint robot 180 with the pass settings of the part composed of links L3 and L4, and selects those where the position and posture of the cable guide G2 are equal. That is, the simulation system 900 extracts the pass settings of adjacent parts that can be connected. Since there is no comparison target in the first loop, the simulation system 900 may not execute the process of step S2130.

[0152] In step S2135, the simulation system 900 extracts the pass settings that satisfy a predetermined robustness length (e.g., "40 mm", etc.) from the extracted pass settings. The process of step S2135 corresponds to the process described with reference to FIG. 13.

[0153] In step S2140, for all joints, when the processing within the loop has been completed, the simulation system 900 ends the subroutine and transfers the control to step S2025. Otherwise, the simulation system 900 repeats the processing within the loop.

[0154] As described above, the simulation system 900 according to the present embodiment obtains a set of local optimal settings (attachment settings of cables and cable guides that do not interfere with the housing of the articulated robot in a difficult posture) for each part composed of an articulated robot. Further, the simulation system 900 combines these sets of local optimal settings to obtain a global optimal setting. By doing so, the simulation system 900 can significantly reduce the amount of calculation and efficiently derive the cable attachment setting as compared with the case of performing the simulation of the cable movement for all postures that the articulated robot can take.

[0155] <E. Supplementary Note> As described above, the present embodiment includes the following disclosures. [Configuration 1] A simulation system (900) for simulating the attachment of a cable in an articulated robot, In a first part composed of a first link (L3) and a second link (L4) of the articulated robot, a posture detection unit (906) for detecting a first posture in which a first joint between the first link (L3) and the second link (L4) has an angle satisfying a predetermined condition; A guide attachment unit (907) for specifying attachment settings of one or more cable guides in the first part; A cable attachment unit (908)(908) for specifying one or more first attachment settings in a first partial cable; A simulation execution unit (909) for executing the motion of the first part and simulating the movement of the first partial cable, and The first partial cable is a part of the cable attached to the first part taking the first posture via the cable guide, simulation system (900). [Configuration 2] The above-mentioned predetermined conditions include that the angle of the first joint is the maximum angle within the motion of the multi-joint robot or an angle within a first range from the maximum angle, or the minimum angle or an angle within a second range from the minimum angle. The simulation system (900) according to Configuration 1. [Configuration 3] Further includes a motion acquisition unit for acquiring the motion of the multi-joint robot. The posture detection unit (906) detects the first posture from the time-series postures of the multi-joint robot acquired from the motion acquisition unit. The simulation system (900) according to Configuration 1 or 2. [Configuration 4] The cable attachment unit (908) identifies the one or more first attachment settings for relaying the first link (L3) and the second link (L4) when the first part takes the first posture. The simulation system (900) according to any one of Configurations 1 to 3. [Configuration 5] Further includes a robustness determination unit (910) for determining the robustness of the cable. The robustness determination unit (910) determines whether each of the one or more first attachment settings that passed the simulation has a predetermined robustness. The simulation system (900) according to Configuration 4. [Configuration 6] The posture detection unit (906) detects a second posture in a second part composed of the second link (L4) and the third link of the multi-joint robot, where the second joint between the second link (L4) and the third link is at an angle that satisfies the above-mentioned predetermined conditions. The cable attachment unit (908) determines one or more second attachment settings of the second partial cable at the second part taking the second posture. The simulation execution unit (909) individually executes the simulation of the first partial cable and the simulation of the second partial cable. The simulation system (900) according to any one of Configurations 1 to 5. [Configuration 7] Further includes a second simulation unit (903) that executes a simulation of a link including two or more joints, The second simulation unit (903) uses the first mounting setting that passed the simulation of the first partial cable and the second mounting setting that passed the simulation of the second partial cable to execute a simulation of the mounting setting in the entire cable, and the simulation system (900) according to Configuration 6. [Configuration 8] Executing a simulation including the first part and the second part means Executing the motion of the first part and the second part, During the execution of the motion, detecting that the cable interfered with the multi-joint robot, and the simulation system (900) according to Configuration 7. [Configuration 9] Based on the fact that there are multiple settings that passed the simulation of the mounting setting in the entire cable, further includes an optimal setting output unit (905) that selects and outputs a setting that makes the cable the shortest from among the multiple settings, and the simulation system (900) according to Configuration 8. [Configuration 10] A method executed by a simulation system, In a first part composed of a first link (L3) and a second link (L4) of a multi-joint robot, detecting a first posture in which a first joint between the first link (L3) and the second link (L4) has an angle that satisfies a predetermined condition; Identifying one or more first mounting settings in the first partial cable; Executing the motion of the first part and simulating the movement of the first partial cable, The first partial cable is a part of the cable attached to the first part taking the first posture. [Configuration 11] A program for causing a computer to execute the method according to Configuration 10.

[0156] The embodiments disclosed this time should be considered as illustrative in all respects and not restrictive. The scope of the present disclosure is shown not by the above description but by the claims, and all changes within the meaning and scope equivalent to the claims are intended to be included. Also, the disclosed content described in the embodiments and each modification example is intended to be implemented, as much as possible, either alone or in combination.

Explanation of Signs

[0157] 2 Control System, 5 IO Remote Terminal, 6 Photoelectric Sensor, 8 Stopper, 9 Tray, 12 Power Supply Unit, 13 Arithmetic Unit, 14,53 IO Unit, 17 Special Unit, 22 Field Network, 30 Robot, 41,42,1301 Servo Motor, 51 Bus, 52 Communication Coupler, 55 Table, 61,71,237,239 Detection Value, 80 Network, 81 System Bus, 87 Proximity Sensor, 100,800 Device, 102 Processor, 104 Main Memory, 106 Operation Unit, 108 Output Unit, 109 Display, 110 Network Interface, 111 Storage, 112 Optical Drive, 114 Recording Medium, 116 Local Communication Interface, 130 Integrated Development Environment, 170 3D Space, 180 Articulated Robot, 210 Robot Hand, 211,222 Control Command, 230 Conveyor, 232 Workpiece, 236,238 Encoder, 240,245 Part, 260,265,280,285,290,L1,L2,L3,L4,L5,L6 Link, 270,295,297 Joint, 301 Arm, 310 Robot Controller, 340,C Cable, 531,532 Servo Motor Driver, 900 Simulation System, 901 Motion Acquisition Unit, 902 Partial Simulation Unit, 903 Combination Selection Unit, 904 Simulation Unit, 905 Global Optimal Setting Output Unit, 906 Difficult Posture Detection Unit, 907 Guide Attachment Unit, 908 Cable Attachment Unit, 909 Simulation Execution Unit, 910 Robustness Judgment Unit, 1005,1010,1015,1101,1102 Reproduction Scene, 1020 Movable Range, 1111,1112 Angle, 1400,1500,1600,1700,1800,1910,1920 Screen, 1930 Connector, C1,C2,C3 Partial Cable, G1,G2,G3,G4 Cable Guide.

Claims

1. A simulation system for cable attachment in a multi-joint robot, comprising: In a first part composed of a first link and a second link of the multi-joint robot, a posture detection unit for detecting a first posture in which a first joint between the first link and the second link has an angle satisfying a predetermined condition; A guide attachment unit for specifying attachment settings of one or more cable guides at the first part taking the first posture; A cable attachment unit for specifying one or more first attachment settings of a first partial cable which is a part of the cable at the first part taking the first posture; A simulation system comprising a simulation execution unit for executing motion of the first part and simulating movement of the first partial cable.

2. The simulation system according to claim 1, wherein the predetermined condition includes that the angle of the first joint is the maximum angle within the motion of the multi-joint robot or an angle within a first range from the maximum angle, or the minimum angle or an angle within a second range from the minimum angle.

3. Further comprising a motion acquisition unit for acquiring motion of the multi-joint robot, The simulation system according to claim 1 or 2, wherein the posture detection unit detects the first posture from the time-series postures of the multi-joint robot acquired from the motion acquisition unit.

4. The simulation system according to any one of claims 1 to 3, wherein the cable attachment unit specifies the one or more first attachment settings for relaying the first link and the second link when the first part takes the first posture.

5. Further comprising a robustness determination unit for determining the robustness of the cable, The robustness determination unit determines whether each of the one or more first attachment settings that passed the simulation has a predetermined robustness, for the simulation system according to claim 4.

6. The posture detection unit detects a second posture in a second part formed by the second link and the third link of the articulated robot, in which a second joint between the second link and the third link is at an angle that satisfies the predetermined condition, The cable attachment unit determines one or more second attachment settings of a second partial cable that is part of the cable, in the second part that takes the second posture, The simulation execution unit individually executes the simulation of the first partial cable and the simulation of the second partial cable, for the simulation system according to any one of claims 1 to 5.

7. Further including a second simulation unit that executes a simulation of a link including two or more joints, The second simulation unit uses the first attachment setting that passed the simulation of the first partial cable and the second attachment setting that passed the simulation of the second partial cable to execute a simulation of the attachment setting for the entire cable, for the simulation system according to claim 6.

8. Executing the simulation including the first part and the second part includes: Executing the motion of the first part and the second part, and detecting that the cable interfered with the articulated robot during the execution of the motion, for the simulation system according to claim 7.

9. Further comprising an optimal setting output unit that selects and outputs a setting that minimizes the length of the cable from among a plurality of settings based on the fact that there are a plurality of settings that have passed the simulation of the mounting settings for the entire cable. The simulation system according to claim 8.

10. A method executed by a simulation system, In a first part consisting of a first link and a second link of a multi-joint robot, detecting a first posture in which a first joint between the first link and the second link is at an angle that satisfies a predetermined condition; Identifying mounting settings of one or more cable guides at the first part taking the first posture; Identifying one or more first mounting settings of a first partial cable that is part of a cable attached to the multi-joint robot at the first part taking the first posture; Executing the motion of the first part and simulating the movement of the first partial cable. A method comprising.

11. In a second part consisting of the second link and the third link of the multi-joint robot, detecting a second posture in which a second joint between the second link and the third link is at an angle that satisfies the predetermined condition; Determining one or more second mounting settings of a second partial cable that is part of the cable at the second part taking the second posture; Further comprising the step of separately executing the simulation of the first partial cable and the simulation of the second partial cable. The method according to claim 10.

12. A program for causing a computer to execute the method according to claim 10 or 11.

Citation Information

Patent Citations

  • Robot hand

    JP1998264068A

  • Simulation method of non-rigid object added to robot and state diagnosing method of non-rigid object added to robot

    JP2005293331A

  • Simulation device, simulation method, and simulation program

    JP2016042378A

  • Simulation device and simulation program

    JP2021117519A