Simulation device, recording medium of simulation program, and method
By using a simulation device to calculate cable behavior in a virtual space and determine the cable installation parameter set, the problem of low efficiency in cable routing design is solved, and efficient cable laying is achieved.
Patent Information
- Application Number
- CN202180079396.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-12-23
- Filing Date
- 2021-03-11
- Publication Date
- 2026-02-17
- Estimated Expiration
- 2041-03-11
AI Technical Summary
In the field of computer vision (FA), the deployment of cables for industrial robots requires a long period of trial and error, resulting in low efficiency in cable routing design.
The behavior of the cable in the virtual space is calculated by a simulation device. The installation position and length of the cable are determined by the parameter set, the load is judged to meet the limit conditions, and finally the installation parameter set of the overall cable is determined.
It enables early design of cable routing, reduces deployment costs and time, and improves design efficiency.
Smart Images

Figure CN116635799B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to a simulation apparatus and simulation program capable of estimating the behavior of objects configured in a 3D virtual space. Background Technology
[0002] Computer simulations are used in various technical fields. As an example of applying such simulations to FA (Factory Automation), Patent Document 1 (Japanese Patent Application Publication No. 2016-042378) discloses the simulation of a control program executed in a controller that controls the movement of machinery.
[0003] Existing technical documents
[0004] Patent documents
[0005] Patent Document 1: Japanese Patent Application Publication No. 2016-042378 Summary of the Invention
[0006] The problem that the invention aims to solve
[0007] In the field of computer vision (FA), there is a desire to pre-design the cabling for industrial robots, which are examples of machinery. More specifically, in the past, when laying cables for industrial robots, users would determine the appropriate installation location or cable length while actually operating the cables, but this process was time-consuming due to repeated trial and error. Therefore, there is a desire to pre-design the cable routing (installation location, cable length, etc.).
[0008] The purpose of this disclosure is to provide a simulation device and simulation program that can pre-design the wiring of cables installed in equipment.
[0009] Methods for solving problems
[0010] The simulation apparatus disclosed herein calculates the behavior of cables installed on a device via multiple guides. The apparatus comprises: a partial cable behavior calculation unit that calculates the behavior of a second object, also located in the virtual space and corresponding to a portion of the cable connected to each guide, based on the behavior of a first object located in the virtual space and corresponding to the device, using a set of parameters related to cable installation. These parameters include the positions and orientations of the multiple guides in the virtual space and the lengths of the partial cables connected to each guide; a parameter determination unit that, for each partial cable, calculates the load applied to the second object corresponding to that partial cable based on the behavior of the second object calculated by the partial cable behavior calculation unit using the parameter sets, according to each of the multiple parameter sets, and determines whether the calculated load on the second object corresponding to that partial cable satisfies a limiting condition for each parameter set; and a parameter determination unit that, for each partial cable, determines a set of parameters from one or more parameter sets determined by the parameter determination unit to satisfy the limiting condition, a set of parameters that satisfies the installation conditions related to the overall cable obtained by combining the partial cables.
[0011] According to the disclosure, it is possible to determine the parameter set for each part of the cable, and determine the parameter set for installing the entire cable on the device from the parameter sets determined for each part of the cable.
[0012] In the above disclosure, the limiting condition includes the following condition: the magnitude of the load applied to the second object corresponding to a portion of the cable does not exceed a threshold.
[0013] According to the disclosure, the parameters of each part of the cable can be determined based on the condition that the load applied to the second object corresponding to that part of the cable does not exceed a threshold.
[0014] In the above disclosure, the limiting conditions include the following: when the length of a portion of the cable varies within a predetermined range, the load applied to the second object corresponding to that portion of the cable does not exceed a threshold.
[0015] According to the disclosure, the condition for determining the parameters of a portion of the cable can be applied to the condition that even if the length of a portion of the cable varies within a specified range, the load size will not exceed a threshold, that is, the condition of robustness to the length of the cable is met.
[0016] In the above disclosure, the conditions related to the installation of the overall cable include the following: the positions and orientations of the guides shared between adjacent cable sections are the same.
[0017] According to this disclosure, the parameters of the overall cable include the condition that the positions and orientations of the guides shared between adjacent cable sections are the same.
[0018] In the above disclosure, the behavior of the first object includes the behavior calculated according to each specified time step, and the partial cable behavior calculation unit calculates the behavior of the second object according to each time step, based on the behavior of the first object corresponding to that time step, using a parameter set.
[0019] According to the above disclosure, the behavior of the cable can be calculated according to the behavior of the device calculated according to each time step.
[0020] In the aforementioned disclosure, some cable behavior calculation units include a physical simulator.
[0021] According to the above disclosure, it is possible to calculate the behavior of cables using a physical simulator.
[0022] In the above disclosure, the second object includes a rigid body link modeled in such a way that adjacent rigid bodies are joined together by a joint. The physics simulator performs calculations based on the behavior of the first object, following an equation that represents the positional and orientational relationship between adjacent rigid bodies in the modeled rigid body link and the constraint conditions corresponding to the joint applied to the positional and orientational relationship between the rigid bodies.
[0023] According to the above disclosure, a cable can be modeled as a rigid link that imposes constraints on the cable, and its behavior can be calculated by showing the equations of this model.
[0024] In the above disclosure, the constraints include parameters representing the stiffness of the cable.
[0025] According to the above disclosure, the behavior of a second object corresponding to a portion of the cable can be calculated using the stiffness of the cable to be installed on the device.
[0026] In the above disclosure, the load includes the load applied to each rigid body of the second object.
[0027] Based on the above disclosure, the load applied to each rigid body can be calculated.
[0028] In the above disclosure, the simulation device also has an evaluation unit that evaluates the behavior of the second object calculated by the partial cable behavior calculation unit based on the calculated load.
[0029] According to the above disclosure, the behavior of the corresponding second object can be evaluated for each part of the cable based on the calculated load.
[0030] In the above disclosure, the device includes a robot, and the behavior of the first object is calculated through simulation of a robot program having instruction codes for operating the robot.
[0031] According to the above disclosure, it is possible to simulate the behavior of cables installed on a robot based on the behavior of the first object calculated by a simulator of the robot program.
[0032] In the above disclosure, the simulation device executes a simulation program to calculate the behavior of an object corresponding to the peripheral device of the robot configured in a virtual space, the simulation program containing commands or parameters for controlling the peripheral device.
[0033] According to the above disclosure, it is possible to calculate the behavior of the second object corresponding to the cable and the behavior of the object corresponding to the peripheral device within the same virtual space.
[0034] In the above disclosure, the simulation device also includes an image generation unit that generates images that visualize the virtual space.
[0035] According to the above disclosure, it is possible to visualize the virtual space configured by the simulated object and provide it to the user.
[0036] The simulation program disclosed herein is a program for causing a computer to perform a method of computing the behavior of a cable, the cable being installed in a device via a plurality of guides.
[0037] The above method includes the following steps: Based on the behavior of a first object corresponding to a device configured in a virtual space, the behavior of a second object configured in the virtual space corresponding to a portion of the cable between each guide member is calculated using a set of parameters related to cable installation, wherein the set of parameters related to cable installation includes the position and orientation of each of the multiple guide members in the virtual space and the length of the portion of the cable between each guide member; and for each portion of the cable, parameters are determined, the parameter determination step including the following steps: for each portion of the cable, according to each of the multiple parameter sets, the load applied to the second object corresponding to that portion of the cable is calculated based on the behavior of the second object corresponding to that portion of the cable calculated using the parameter set; and for each portion of the cable, according to each of the multiple parameter sets, whether the calculated load size of the second object corresponding to that portion of the cable meets the limiting conditions, the method further includes the following step: in the parameter determination step, for each portion of the cable, from one or more parameter sets that are determined to meet the limiting conditions, a parameter set that meets the conditions related to the installation of the overall cable obtained by combining the portion cables is determined.
[0038] According to the disclosure, it is possible to determine the parameter set for each part of the cable, and determine the parameter set for installing the entire cable on the device from the parameter sets determined for each part of the cable.
[0039] Invention Effects
[0040] According to this disclosure, it is possible to pre-design the cabling of the cables to be installed in the equipment. Attached Figure Description
[0041] Figure 1 This diagram schematically illustrates an example of an application scenario for the cable simulation device 1B of this embodiment.
[0042] Figure 2 This is a schematic diagram illustrating the device simulated by the simulation device 1 of this embodiment.
[0043] Figure 3 This is a schematic diagram illustrating an example of the unit structure of the control system 2 according to this embodiment.
[0044] Figure 4 This is a schematic diagram illustrating an example of the hardware structure of the simulation device 1 used to implement this embodiment.
[0045] Figure 5 This is a schematic diagram illustrating an example of the functional structure of the simulation device 1 used to implement this embodiment.
[0046] Figure 6 This is a schematic diagram illustrating an example of a model of a robot arm equipped with cables and guides.
[0047] Figure 7 It is a schematic diagram showing a model of a portion of the cables used for simulation.
[0048] Figure 8 This is a diagram illustrating an example of a physical simulation model of the cable in this embodiment.
[0049] Figure 9 It is shown Figure 8 A diagram of an example of the simultaneous equations 147 for a physical simulation model of a cable.
[0050] Figure 10 This is a schematic diagram showing the updated position of the physical simulation in this embodiment.
[0051] Figure 11 This is a diagram illustrating an example of a time series simulation of this embodiment.
[0052] Figure 12 yes Figure 11 The flowchart of the cable simulation (step S100) process.
[0053] Figure 13 yes Figure 12 The flowchart of partial cable optimization processing (step S110).
[0054] Figure 14 yes Figure 12 The overall cable optimization process (step S120) is shown in the flowchart.
[0055] Figure 15 This diagram illustrates the optimal number of segments and guide position / pose within the robot's arm.
[0056] Figure 16 This is a diagram that schematically illustrates an example of the picking and placing motion of a robotic arm.
[0057] Figure 17 This is a graph showing the results of the simulation.
[0058] Figure 18 It is shown Figure 17 The graph shows the relationship between the various motions of the cable and the optimal parameter set of the overall cable, as well as the shape of the cable.
[0059] Figure 19 This is a diagram schematically illustrating a method for estimating the spring constant.
[0060] Figure 20 It is presented in tabular form for Figure 19 The graph of vertical displacement measured for each cable length in (a).
[0061] Figure 21 It is a diagram that schematically illustrates the relationship between the torsional moment and the angle of torsion of a cylinder's shaft.
[0062] Figure 22 This is a graph showing the relationship between the torsion angle and the torsional moment.
[0063] Figure 23 This diagram schematically illustrates an example of a UI screen related to cable parameter settings in this embodiment.
[0064] Figure 24 This is an example of a screen showing the installable parameter groups of this embodiment in the form of a table. Detailed Implementation
[0065] Hereinafter, various embodiments will be described with reference to the accompanying drawings. In the following description, the same reference numerals are used to denote the same parts and components. Their names and functions are also the same. Therefore, they will not be described in detail again.
[0066] <A. Application Examples>
[0067] An example of a scenario in which the present invention is applied will be described. Figure 1 This diagram schematically illustrates an example of an application scenario for the cable simulation device 1B of this embodiment. (Refer to...) Figure 1The cable simulation device 1B calculates (estimates) the behavior of cables that can be installed on robot 30, which is an example of equipment equipped on FA's production line. Furthermore, the equipment for installing cables is not limited to robot 30. Moreover, robot 30 is not limited to any particular type, for example, having an arm 301 constructed with multiple joints. Robot 30 has a robot hand 210 that is detachably mounted to the front end of the arm 301 via connector 7. Cables are guided by cable guides of the robot hand 210 and disposed on surface 306 of the arm 301 (see reference). Figure 8 Cable guides 350 and 351 are installed. Hereinafter, the cable guides will be simply referred to as guides. When cables are installed on the robot 30 using these multiple guides, the cables between the guides are referred to as partial cables. Figure 1 In this context, the partial cable includes a portion of cable 341 between the guide member and guide member 350 of the robot hand 210, a portion of cable 342 between guide members 350 and 351, and a portion of cable 343 between guide members 351 and 352. Hereinafter, the cable obtained by connecting the partial cables will be referred to as the integral cable 340 or cable 340, to distinguish it from the partial cables.
[0068] In their common description, partial cables 341, 342, and 343 are referred to as "partial cables". Cable 340 is constructed, for example, by covering a linear conductive material constituting a signal line with an insulator. The material of the insulator is not limited; resin materials such as plastics, rubber, and vinyl can be used. Furthermore, the material of the conductor is not limited; conductive metals can be used. Cable 340 may, for example, include an air cable for the flow of gases such as air. Furthermore, guides 350, 351, and 352 have the same characteristics (shape, material, etc.), and therefore are collectively referred to as "guides" in their common description. Cable 340 is mounted to robot 30 by means of guides, and robot controller 310 (see reference) Figure 2 Other devices, such as the robot 30, can exchange signals with the robot 30 via cable 340.
[0069] Typically, given the high cost of the cables 340 used in robots and the time-consuming wiring work as described above, if the appropriate wiring of the cables 340 for the actual robot 30 is designed in advance, and the user implements the wiring of the cables 340 according to the design results, the cost, including the expense and time spent laying the cables 340, can be reduced. This pre-design is achieved by simulating the cables using the cable simulation device 1B.
[0070] More specifically, the information processing device 100 includes a cable simulation device 1B and a device behavior generation module 151, which generates device behavior data 2520 representing the behavior of the device (robot 30). The cable simulation device 1B includes a cable simulator 165 that calculates (estimates) the behavior of an object (hereinafter also referred to as the second object) corresponding to the cable 340 installed on the robot 30 in a 3D virtual space. The device behavior data 2520 represents the behavior of an object (hereinafter also referred to as the first object) corresponding to the robot 30 and configured in the same 3D virtual space as the object configured for the overall cable 340. The term "first object" is not limited; for example, it includes the object corresponding to the robot 30 and the robot hand 210 installed on the robot 30.
[0071] The cable simulator 165 uses device behavior data 2520 and multiple parameter sets to calculate the behavior of an object in a 3D virtual space. A 3D absolute coordinate system, defined for example by orthogonal X, Y, and Z axes, is applied to this 3D virtual space. The cable simulation device 1B can be installed, for example, in an information processing unit 100 composed of a general-purpose computer, and the device behavior generation module 151, the cable simulator 165, and the evaluation module 177 are implemented by executing a prescribed program through the information processing unit 100.
[0072] The cable simulator 165 calculates the behavior of the cable 340 installed via multiple guides mounted on the robot 30, and determines the optimal set of parameters related to the overall installation of the cable 340 from multiple parameter sets based on the calculated behavior. To determine the optimal set of parameters related to the overall installation of the cable 340, the cable simulator 165 includes a partial cable optimization unit for optimizing the parameter sets of individual cable parts and an overall cable optimization unit for optimizing the parameter sets of the entire cable 340. The partial cable optimization unit is one embodiment of a "parameter determination unit" that determines the optimal set of parameters related to installation for each individual cable part. In this disclosure, the installation-related parameter sets include the position / orientation of the guides and the cable length.
[0073] The partial cable optimization unit includes, as one embodiment of a "partial cable behavior calculation unit," a partial cable behavior calculation module 166, as one embodiment of a "load calculation unit," a constraint condition determination module 168, and a robustness determination module 169, as one embodiment of a "constraint condition determination unit." For each partial cable positioned between adjacent guides, the partial cable behavior calculation module 166 optimizes a set of parameters related to the installation of that partial cable using the load calculation module 167, the constraint condition determination module 168, and the robustness determination module 169. More specifically, the information processing device 100, through the partial cable behavior calculation module 166, calculates the behavior of a second object positioned in the virtual space corresponding to the device (device behavior data 2520) based on the behavior of a first object configured in the virtual space corresponding to the device, using a set of parameters including the positions of each guide in the virtual space and the lengths of the partial cables between each guide.
[0074] For each of the multiple parameter groups, the load calculation module 167 calculates the load applied to the second object based on the behavior of the second object corresponding to each part of the cable calculated by the partial cable behavior calculation module 166. The type of load calculated by the load calculation module 167 is not limited. For example, when the device behaves according to the device behavior data 2520, it may include bending, elongation, torsion, and impact (collision of the second object) of the second object, as well as the force (reaction force) applied to the second object in the event of a collision.
[0075] The constraint determination module 168 determines whether the load size calculated for the second object corresponding to each part of the cable meets the constraint conditions. More specifically, the constraint conditions may include the condition that the load size does not exceed a threshold. Furthermore, the constraint conditions may include the following condition (hereinafter also referred to as the robustness condition): even if the length of each part of the cable varies within a predetermined range, the load size applied to the second object corresponding to that part of the cable will not exceed the aforementioned threshold. The constraint determination module 168 determines that the size of each load meets the constraint conditions when the size of each load does not exceed the threshold. The robustness determination module 169 determines whether the load size calculated for the second object corresponding to each part of the cable meets the aforementioned robustness conditions.
[0076] The cable simulator 165 will determine the set D of the optimal parameter sets for each part of the cable by using either the constraint determination module 168 or the robustness determination module 169 to identify one or more parameter sets that satisfy the constraints (or constraints including robustness conditions). 2,n .
[0077] The parameter determination module 170 of the overall cable optimization unit is one embodiment of a "parameter determination unit". The parameter determination module 170 determines the optimal parameter sets D for each part of the cable that is determined to meet the constraints. 2,n The optimal parameter set d for the overall cable determines the installation conditions related to the overall cable 340 obtained by combining the individual cable components. * Conditions related to the installation of the overall cable 340 include, for example, a set of parameters that minimizes the overall cable length of the combined cable 340.
[0078] In this disclosure, the parameter set that satisfies the constraints can also be configured to satisfy robustness against interference such as errors in simulation calculations, user-installed cable errors, etc. More specifically, the optimal parameter set for each part of the cable is determined to be the parameter set that satisfies the above constraints even when the length of that part of the cable is shortened or lengthened within a certain range.
[0079] After determining the optimal parameter set for each cable segment, the parameter determination module 170 determines the optimal parameter set related to the installation of the overall cable 340. Under adjacent conditions, the parameter determination module 170 determines the optimal parameter set d for the entire cable 340 based on the set of optimal parameter sets for each cable segment. * The adjacency condition is to combine adjacent cable segments, requiring the sharing of the guide's position / orientation between the two cable segments. Furthermore, when multiple optimal parameter sets are obtained for the overall cable 340, the parameter determination module 170 selects the parameter set that minimizes the length of the overall cable 340 from among the multiple optimal parameter sets.
[0080] Thus, in this disclosure, the cable simulator 165 optimizes a set of parameters related to cable installation, namely cable length and the position / pose of the guides ("position / pose" refers to position and pose), for the robot 30 as shown in the device behavior data 2520, based on a pre-set motion. In a simulation, if the position / pose of the guides for installing the overall cable 340 and the cable length between the guides are simultaneously optimized, the number of parameters becomes excessive, resulting in significant simulation costs (computation time, etc.). In contrast, the cable simulator 165 of this disclosure performs the optimization of the set of parameters related to the installation of the overall cable 340 by dividing it into the optimization of parameter sets for individual cable components. Therefore, the optimization of parameter sets performed through simulation can be replaced by the optimization of a limited number of parameters consisting of the position / pose of adjacent guides and the partial cable lengths between these guides. This reduces the cost of simulation, allowing for the pre-design of cable routing for the device using the parameter set of the overall cable 340 determined through simulation.
[0081] The following describes a more specific application example of this embodiment.
[0082] <B. Examples of Control Systems>
[0083] Figure 2 This diagram schematically illustrates the equipment simulated by the simulation device 1 of this embodiment. The simulation device 1 includes a system simulation device 1A, which estimates the behavior of the actual equipment controlled by the PLC (Programmable Logic Controller) 200 of the control system 2 equipped on the FA production line. The simulation device 1 can be installed, for example, in an information processing device 100 composed of a general-purpose computer, including a PC (Personal Computer), a tablet terminal, or other terminal device. The information processing device 100 executes a predetermined program to perform a system simulation that estimates the behavior of the equipment. The information processing device 100 provides auxiliary tools to assist the user in using the control system 2. These auxiliary tools include setting tools for preparing the simulation execution environment, the execution environment of the control program used by the control system 2, and the communication environment of the control system 2. The auxiliary tools are provided to the user, for example, through a UI (User Interface).
[0084] exist Figure 2 In this system, the information processing device 100 can be communicatively connected to the PLC 200, but it can also perform simulations without being connected to the PLC 200. Furthermore, the aforementioned cable simulation device 1B can be configured within the simulation device 1. In this case, the simulation device 1 provides an environment capable of performing cable simulation and system simulation.
[0085] Reference Figure 2 The control system 2 includes a PLC 200, a robot controller 310, and servo motor drivers 531 and 532. The PLC 200, robot controller 310, and servo motor drivers 531 and 532 are daisy-chained together via a field network 22. The field network 22 may be, for example, EtherCAT (registered trademark). However, the field network 22 is not limited to EtherCAT. The information processing device 100 can be connected via... Figure 3 The network 80 is connected to the PLC 200. The network 80 can be any wired or wireless communication unit. The PLC 200 and the information processing device 100 communicate, for example, via USB (Universal Serial Bus).
[0086] The PLC 200 executes the designed control program based on field values, including the output values of sensors from the field network 22, and assigns target values to the robot controller 310 or servo motor drivers 531 and 532 respectively based on the execution results, thereby controlling the robot 30 and the equipment associated with the handling of the conveyor 230.
[0087] Servo motor drivers 531 and 532 drive servo motors 41 and 42 of conveyor 230. Encoders 236 and 238 are configured on the rotating shafts of servo motors 41 and 42. These encoders output the position (rotation angle), speed, and cumulative revolutions of the servo motors as feedback values to PLC 200.
[0088] The robot 30 and the conveyor 230 work together to move the workpiece 232. Furthermore, for simplicity, the movement of the workpiece 232 will be described here, but it is not limited to movement. For example, the robot 30 may also be processing the workpiece 232 placed on the pallet 9.
[0089] exist Figure 2 In the example of a drive device for robot 30, servo motors 1301, 1302, 1033, and 1304 (hereinafter collectively referred to as "robot servo motors") installed on robot 30 and robot controller 310 driving the robot servo motors are illustrated. Similarly, as an example of a drive device for conveyor 230, servo motor drivers 531 and 532 driving servo motors 41 and 42 installed on conveyor 230 are illustrated.
[0090] The robot controller 310 drives the robot servo motors of the robot 30. An encoder (not shown) is installed on the rotation axis of each robot servo motor. This encoder outputs the servo motor's position (rotation angle), speed, and cumulative revolutions as feedback values to the robot controller 310.
[0091] Servo motor drivers 531 and 532 drive the corresponding servo motors 41 and 42 according to command values. The control system 2 also includes a photoelectric sensor 6 and an openable / closable stop 8 associated with the conveyor 230. The photoelectric sensor 6 detects that the pallet 9 on the conveyor surface of the conveyor 230 has reached the designated workpiece tracking area and sends the detection value to the PLC 200. The stop 8 closes according to the command value, stopping (fixing) the pallet 9 that has reached the tracking area.
[0092] The robot hand 210 of the robot 30 is installed according to the process. The types of robot hands 210 include, for example, parallel hands, multi-finger hands, multi-jointed hands, etc., but are not limited to these. For example, they may also include types that use suction to pick up and place workpieces 232.
[0093] Robot 30 performs pick-and-place operations, for example, as movements based on commands from robot controller 310. Specifically, robot 30 uses robot arm 210 to pick up workpiece 232 from pallet 9 on conveyor 230, moves workpiece 232 to a designated worktable 55, and places it on the worktable 55. Robot arm 210 controls the opening and closing of its hand for picking up or placing workpiece 232 according to commands from robot controller 310.
[0094] Examples of devices that estimate behavior through simulation performed by system simulation device 1A include conveyor 230 for transporting workpiece 232 and robot 30 (robot 30 and robot arm 210) for operating workpiece 232, but the devices whose behavior is estimated are not limited to these. Cable simulation device 1B calculates (estimates) the behavior of the cable based on the behavior of the devices calculated (estimated) through system simulation.
[0095] The control program can also be designed by the information processing device 100 using the results of such simulation. The control program designed on the information processing device 100 is sent to the PLC 200 via the field network 22.
[0096] Furthermore, the PLC 200 may also include components of the analog device 1 that are present in the information processing device 100.
[0097] <C. Overall Structure of the Control System>
[0098] Figure 3 This is a schematic diagram illustrating an example of the unit structure of the control system 2 according to this embodiment. (Refer to...) Figure 3 The control system 2 includes a PLC 200, servo motor drivers 531 and 532 connected to the PLC 200 via a field network 22, a remote I / O terminal 5, a robot controller 310 connected by a connection cable 340, and I / O devices such as a photoelectric sensor 6, a proximity sensor 87 and encoders 236 and 238 provided by a stop member 8, which are installed in the field.
[0099] The PLC 200 includes an arithmetic unit 13 that performs the main arithmetic operations, one or more I / O units 14, and special units 17. These units are configured to exchange data with each other via a system bus 81, and are powered by a power supply unit 12. The information processing device 100 can be connected to the arithmetic unit 13 via a network 80.
[0100] The I / O unit 14 collects detection values 61, 71, 237, and 239 from I / O devices including the photoelectric sensor 6, the proximity sensor 87 (containing the stop member 8), and encoders 236 and 238. The proximity sensor 87 detects that the tray 9 has approached the stop member 8 to a predetermined distance in a non-contact manner. The detection values from each I / O device are set (written) into the memory of the I / O unit 14. The arithmetic unit 13 uses the values collected by the I / O unit 14 to perform calculations of the control program and sets (writes) the result value into the memory of the I / O unit 14. Peripheral devices or I / O devices operate with reference to the values in the memory of the I / O unit 14.
[0101] The field network 22 can be connected to the robot controller 310, servo motor drivers 531 and 532, and the remote I / O terminal 5. The remote I / O terminal 5 includes a communication coupler 52 for performing processing related to data transmission via the field network 22 and one or more I / O units 53. These units are configured to exchange data with each other via the remote I / O terminal bus 51.
[0102] Servo motor drivers 531 and 532 are connected to the arithmetic unit 13 via field network 22 and drive servo motors 41 and 42 according to instruction values from the arithmetic unit 13. The arithmetic unit 13 generates these instruction values based on detection values 237 and 239 from encoders 236 and 238.
[0103] The arithmetic unit 13 executes a predetermined control program based on the detection values from the I / O devices, thereby enabling the robot 30 to perform pick-and-place operations. Specifically, when the arithmetic unit 13 detects that the workpiece 232 is approaching the predetermined tracking area based on the detection value 61 of the photoelectric sensor 6 and the detection value 71 of the proximity sensor 87, it generates control commands 211 for the robot arm 301 and control commands 222 for the robot hand 210, and outputs them to the robot 30 via the robot controller 310 and cable 340.
[0104] <D. Hardware Structure>
[0105] Next, an example of the hardware structure of the simulation device 1 in this embodiment will be described.
[0106] Figure 4 This is a schematic diagram illustrating an example of the hardware structure of the simulation device 1 used to implement this embodiment. In this embodiment, the simulation device 1 can be installed in... Figure 4 The information processing device 100 is as shown. Specifically, the simulation device 1 is implemented by executing the required program through the processor 102 of the information processing device 100. Figure 4 In the simulation device 1, there is an environment for implementing system simulation and cable simulation.
[0107] As a key component, the information processing device 100 includes: a processor 102 that executes an operating system (OS) and various programs described later; a main memory 104 that provides a working area for storing data required by the processor 102 to execute programs; an operation unit 106 that accepts user operations, such as a keyboard and mouse; an output unit 108 that outputs processing results, such as a display 109, various indicators, and a printer; a network interface 110 that connects to various networks, including network 80; an optical driver 112; a local communication interface 116 that communicates with external devices; and a storage device 111. These components are connected via an internal bus 118 and the like for data communication.
[0108] The information processing device 100 reads various programs or data from a computer-readable storage medium 114 via an optical driver 112 and installs them into the storage device 111, etc. The storage medium 114 includes an optical storage medium (such as a DVD (Digital Versatile Disc) that non-temporarily stores computer-readable programs).
[0109] The various programs or data executed by the information processing device 100 can be installed via a computer-readable storage medium 114, or they can be installed by downloading from a server device (not shown) on the network via the network interface 110.
[0110] The storage device 111, for example, is composed of an HDD (Hard Disk Drive) or an SSD (Flash Solid State Drive), and stores the program executed by the processor 102. Specifically, the storage device 111 stores a virtual time generation program 120, a relay program 121, a physical simulation program 122, physical simulation parameters 124 related to physical simulation, a PLC simulation program 126, PLC parameters 128 related to PLC simulation, a robot simulation program 130, robot parameters 132 related to robot simulation, an integration program 134, and a cable simulation program 137, which serve as simulation programs for implementing simulation in this embodiment. The storage device 111 also stores an image processing program 136, an evaluation program 143, and a parameter setting program 145. The image processing program 136 generates images for displaying objects arranged in a 3D virtual space.
[0111] When cable simulation program 137 is executed, the following is achieved: Figure 1 The cable simulator 165 shown includes various modules with partial cable optimization and a parameter determination module 170 for the overall cable optimization. The cable simulation program 137 includes a constraint determination program 1371 implementing the constraint determination module 168 and a robustness determination program 1372 implementing the robustness determination module 169. The load applied to the cable, calculated by executing the cable simulation program 137, is saved as load information 142.
[0112] Evaluation program 143 evaluates the behavior of the object corresponding to cable 340 based on the behavior calculated by cable simulation program 137, and outputs evaluation data 144 representing the evaluation result. Evaluation data 144 can be stored in storage device 111. The evaluation data includes data evaluating the load applied to the model of the cable in the cable simulation.
[0113] The parameter setting program 145, for example, saves the cable parameters 139 set by the user based on the operation of the information processing device 100 in the storage device 111. The cable parameters 139 include a constraint parameter 149, a robustness parameter 140, and one or more candidate parameter groups 141, etc. The constraint parameter 149 includes a threshold value for the constraint, and the robustness parameter 140 includes a robustness range R, which will be described later. The cable parameters 139 also include the bending constant, damping coefficient, and stiffness value of the cable 340.
[0114] The virtual time generation program 120 generates virtual times for simulation. The simulation device 1 performs the simulation according to the period based on the virtual times.
[0115] The physical simulation program 122 calculates the behavior of the object corresponding to the equipment that moves in association with the movement of the workpiece 232. The equipment for which the behavior of the corresponding object is calculated by the physical simulation program 122 includes, for example, photoelectric sensors 6, conveyors 230, pallets 9, stops 8, and robotic arms 210 associated with the handling or movement of the workpiece 232. Physical simulation parameters 124 are provided to the physical simulation program 122. These parameters include parameters specifying the behavior of the object corresponding to such equipment and parameters specifying the weight or shape of the workpiece 232. The values of the physical simulation parameters 124 can be appropriately changed through user operation or integration program 134, etc.
[0116] As physical simulation parameter 124, equipment associated with the handling or movement of workpiece 232 and CAD (Computer-Aided Design) data of workpiece 232 can also be used. By using CAD data, the behavior of real-world equipment can be more accurately reproduced using objects.
[0117] The PLC simulation program 126 calculates the behavior of the corresponding object, and the physical simulation program 122 calculates the position of the equipment and workpiece 232. The calculated position is provided to the physical simulation program 122. PLC parameters 128, which contain the parameters required to calculate the above position, are provided to the PLC simulation program 126.
[0118] The robot simulation program 130 functions as a simulator to reproduce the behavior of the robot 30 through objects. The robot simulation program 130 reproduces the pre-set movements of the robot 30 manipulating the workpiece 232 based on the results (object behavior) calculated by the physical simulation program 122. Robot parameters 132, containing parameters necessary for reproducing the behavior of the robot 30 through the corresponding objects, are provided to the robot simulation program 130.
[0119] Relay program 121 provides relay functionality for the exchange of data between the physical simulation program 122 and the robot simulation program 130. Relay program 121 is not limited, and the relay functionality is described, for example, by script commands.
[0120] The integration program 134 performs processes to enable the physical simulation program 122, the PLC simulation program 126, the robot simulation program 130, and the relay program 121 to cooperate with each other. Specifically, typically, the integration program 134 generates and updates virtual space information 105 on the main memory 104, which describes the state of objects in a 3D virtual space. The physical simulation program 122, the PLC simulation program 126, and the robot simulation program 130 refer to (read out) the virtual space information 105 and perform their respective simulation processes, reflecting necessary information from their execution results in the virtual space information 105. The behavior and processing of the equipment in the control system 2, which has a device for transporting workpiece 232 and a robot 30 that moves workpiece 232 by predetermined motion, are reproduced through the functions provided by the integration program 134.
[0121] Image processing program 136 is provided with 3D visualization data 135 for display on display 109. The 3D visualization data 135 includes behavioral data 252 and image data 253. Image data 253 includes device image data 2530 for depicting an object corresponding to the simulated device and cable image data 2531 for depicting an object corresponding to cable 340. Cable image data 2531 includes image data corresponding to an object of rigid body 304 (described later).
[0122] Behavioral data 252 includes device behavioral data 2520 and cable behavioral data 2521. Device behavioral data 2520 includes the positions of each device in the virtual space information 105 calculated using a prescribed function, i.e., the 3D coordinates P(x, y, z) and their time series data. Cable behavioral data 2521 represents the behavior of the object configured in the 3D virtual space corresponding to the cable 340, calculated by the cable simulator 165 based on the data from device behavioral data 2520.
[0123] Image processing program 136 uses device image data 2530 and device behavior data 2520 to generate image data that stereoscopically depicts the behavior of each object corresponding to workpiece 232, the equipment and robot 30 associated with the handling of workpiece 232, and the robot arm 210 installed on robot 30 in a 3D virtual space, and outputs it to display 109. Furthermore, image processing program 136 uses cable image data 2531 and cable behavior data 2521 to generate image data that stereoscopically depicts the behavior of the object corresponding to cable 340 in a 3D virtual space, and outputs it to display 109.
[0124] Therefore, the display 109 shows the object according to the behavior calculated through simulation, reproduces the behavior of the device in the control system 2, and reproduces the behavior of the cable 340 that is linked to the behavior of the device. Additionally, the image data 253 may also include CAD (Computer-Aided Design) data, etc.
[0125] exist Figure 4 The example shown is an example of implementing the simulation device 1 using a single information processing device 100, but multiple information processing devices can also be used in conjunction to implement the simulation device 1. In this case, the information processing device 100 may perform a portion of the processing required to implement the simulation device 1, and the remaining processing may be performed via a server (cloud) or the like on a network.
[0126] Figure 4 An example of implementing the simulation device 1 by executing one or more programs through the processor 102 is shown, but circuits such as ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array) can also be used to install part of the processing and functions required to implement the simulation device 1.
[0127] <E. Functional Structure>
[0128] Next, an example of the functional structure of the simulation device 1 in this embodiment will be described. Figure 5 This is a schematic diagram illustrating an example of the functional structure of the simulation device 1 used to implement this embodiment. Typically, Figure 5 The functions shown are achieved by the processor 102 of the information processing device 100 executing programs (virtual time generation program 120, relay program 121, physical simulation program 122, PLC simulation program 126, robot simulation program 130, integration program 134, image processing program 136, cable simulation program 137, evaluation program 143, and parameter setting program 145, etc.). The simulation device 1 has functions for system simulation device 1A and cable simulation device 1B, a cycle generation module 154 for generating the execution cycle of system simulation and cable simulation, and a 3D visualizer 164 for depicting objects in a 3D virtual space based on the simulation results. The 3D visualizer 164 may include functions implemented by executing the image processing program 136.
[0129] (E1. Structure of System Simulation Device 1A)
[0130] Reference Figure 5The system simulation device 1A includes a virtual space information management module 150, a PLC simulator 152, a workpiece behavior simulator 155, a physical simulator 156, a relay module 158, a robot simulator 160, and a workpiece tracking module 162.
[0131] The virtual space information management module 150 is implemented by executing the integration program 134. Figure 4 This is achieved by managing virtual space information 105, which is used to specify the behavior (position and posture, etc.) of each object in the simulated 3D virtual space.
[0132] PLC simulator 152 executes PLC simulation program 126 ( Figure 4 This is achieved by calculating the behavior of the object corresponding to the equipment associated with the handling of workpiece 232 based on physical simulation parameters 124. The information calculated by the PLC simulator 152 is reflected in the virtual space information 105.
[0133] PLC simulator 152 is equivalent to a simulation program that estimates the behavior of equipment related to the handling of workpiece 232 and contains multiple commands included in the PLC program. These multiple commands may include a group of commands included in the PLC program for controlling the behavior of the handling-related equipment. The PLC program is described, for example, in a programming language written in a cyclical language (e.g., ladder logic).
[0134] Each time these commands of the PLC simulator 152 are executed based on the data in the virtual space information 105, instruction values for controlling, for example, the servo motors 41 and 42 of the conveyor 230 are generated and stored in the virtual space information 105.
[0135] The relay module 158 outputs the measurement results of workpiece 232, processed using the image measurement parameters 129 of workpiece 232, to the robot simulator 160. The robot simulator 160, based on the robot parameters 132 and the measurement results from the relay module 158, reproduces the behavior of the robot 30 configured in the virtual space that handles the workpiece. The behavior information of the robot 30 calculated by the robot simulator 160 is reflected in the virtual space information 105. The robot simulator 160 is implemented by executing the robot simulation program 130. The robot simulator 160 outputs device behavior data 2520, which represents the behavior of the robot 30 configured in the 3D virtual space that moves the workpiece 232. The robot simulator 160 simulates the arm 301 of the robot 30 and the robot hand 210 mounted at its front end as a single rigid body.
[0136] Specifically, the robot simulation program 130 includes a command set contained in the program of the robot controller 310. This command set contains instructions from the robot program that have instruction codes to cause the robot 30 to operate the workpiece 232. These instructions include commands such as: calculating the target trajectory of the robot 30 based on the output data of the PLC simulator 152 of the virtual space information 105, and calculating instruction values representing the behavior of each axis based on the calculated trajectory.
[0137] In this way, when executing commands, the robot simulator 160 generates instruction values for each axis that control the behavior of the robot 30, and outputs the generated instruction values to the virtual space information management module 150. The virtual space information management module 150 manages (saves) the instruction values from the robot simulator as virtual space information 105.
[0138] The workpiece behavior simulator 155 calculates the behavior of one or more workpieces 232 configured in a 3D virtual space. Specifically, the workpiece behavior simulator 155 calculates the behavior of one or more workpieces 232 configured in a 3D virtual space by executing a physical simulation program 122. Figure 4 This is achieved by calculating and updating the behavior of workpiece 232 configured in the 3D virtual space based on the behavior information of the object corresponding to the handling equipment of workpiece 232 in the PLC simulator 152. When calculating the behavior of workpiece 232, the workpiece behavior simulator 155 calculates the position, posture, moving speed, and moving direction of workpiece 232. The position and posture of workpiece 232 are calculated based on workpiece parameters arbitrarily set by the user, etc. The position and posture information of workpiece 232 calculated by the workpiece behavior simulator 155 is reflected in the virtual space information 105. Workpiece parameters can also be included in the physical simulation parameters 124.
[0139] Physics simulator 156 is executed by physics simulation program 122 ( Figure 4 This is achieved by using physical simulator 156 to calculate the behavior (position, posture, speed, direction, etc.) of the object corresponding to the equipment used to handle or move workpiece 232, according to physical simulation parameters 124. The objects simulated by physical simulator 156 include photoelectric sensor 6, stop 8, pallet 9, robot arm 210, conveyor 230, and workpiece 232.
[0140] The physics simulator 156 calculates the position / orientation and other behaviors of these objects according to the prescribed physics calculations. The physics simulator 156 performs the calculations by setting the mass parameter 127 of the object in the physics simulation parameters 124 used in the physics calculations to zero.
[0141] The physics simulator 156 saves the 3D coordinates P(x, y, z) of the robot hand 210 calculated through physical operations as device behavior data 2520. The physics simulator 156 executes at each time step ti (i = 1, 2, 3, ...), thereby the device behavior data 2520 contains the 3D coordinates P(x, y, z) of the time series corresponding to the robot hand 210.
[0142] The workpiece tracking module 162 is implemented by executing the robot simulation program 130. The workpiece tracking module 162 tracks the workpiece 232 picked up and placed by the robot 30 in the 3D virtual space based on the behavior information of the robot 30 from the robot simulator 160. The position information (workpiece position) of the workpiece 232 tracked by the workpiece tracking module 162 is reflected in the virtual space information 105.
[0143] (E2. Structure of cable simulation device 1B)
[0144] Reference Figure 5 The cable simulation device 1B includes a cable simulator 165 and an evaluation module 177. The cable simulator 165 is implemented by executing a cable simulation program 137, and the evaluation module 177 is implemented by executing an evaluation program 143.
[0145] The cable simulator 165 executes at each time step ti, thereby calculating the behavior of the object configured in the 3D virtual space corresponding to the cable 340 using the cable parameter 139 based on the device behavior data 2520 corresponding to the time step ti, and saving the calculation result as cable behavior data 2521.
[0146] The cable simulator 165 obtains cable behavior data 2521 by calculating the behavior of the object corresponding to the cable 340 at each time step ti. The obtained cable behavior data 2521 shows the time-series behavior of the cable 340 in a 3D virtual space.
[0147] The 3D visualizer 164 is equivalent to an image generation unit that generates images that visualize a 3D virtual space. Based on the instruction value of each time step ti of the virtual space information 105, the 3D visualizer 164 calculates the 3D coordinates P(x, y, z) of the objects in the 3D virtual space corresponding to the workpiece 232, robot 30, robot arm 210, and peripheral devices, respectively. It calculates device behavior data 2520 containing the time series of 3D coordinates P(x, y, z). Peripheral devices include, for example, peripheral devices of the robot 30 (robot arm 301), including devices associated with the handling of the workpiece 232.
[0148] The 3D visualizer 164 generates image data visualizing the behavior of the device in a 3D virtual space based on device behavior data 2520 and device image data 2530, and generates image data visualizing the behavior of the cable in the 3D virtual space based on cable behavior data 2521 and cable image data 2531. This image data is output to the display 109. Thus, the display 109 displays images representing the device behavior calculated through system simulation and images representing the cable 340 behavior calculated through cable simulation.
[0149] The cycle generation module 154 is implemented by executing the virtual time generation program 120. Based on the output of a timer (not shown) provided by the processor 102, the cycle generation module 154 outputs a signal ST synchronized with the timer output to other units. Each unit executes its processing or program synchronously with the period of the signal ST output from the cycle generation module 154, i.e., a predetermined time step ti. Thus, Figure 5 Each part executes processing synchronously according to each time step ti. The output period of signal ST is not limited and can be determined based on... Figure 3 The communication cycle (hereinafter also referred to as the "control cycle") of the field network 22 is determined by the time synchronization of the control system 2. Furthermore, the cycle based on the time step ti of the signal ST can be variable. The value of "i" of the time step ti changes synchronously with the output cycle of the signal ST, such as 1, 2, 3… to a predetermined maximum value, which can be determined based on the length of time required from the start to the end of the aforementioned predetermined motion.
[0150] pass Figure 5 The functions shown work together to reproduce the behavior of cable 340, which is linked to the behavior of the device.
[0151] In this embodiment, Figure 5 The simulation device 1 can, for example, activate one of the system simulation device 1A and the cable simulation device 1B according to an instruction from the user received via the operation unit 106. Furthermore, the simulation device 1 can, for example, determine the timing of activating the system simulation device 1A or the cable simulation device 1B according to an instruction from the user received via the operation unit 106. For example, the simulation device 1 activates the system simulation device 1A and then sets the activation timing for the cable simulation device 1B. Thus, device behavior data 2520 can be provided to the cable simulator when the cable simulation device 1B is activated.
[0152] In addition, Figure 5In this process, the information processing device 100 is equipped with both a system simulation device 1A and a cable simulation device 1B. However, as long as the cable simulation device 1B is provided in a manner that allows the device behavior data 2520 to be used, the information processing device 100 may also be equipped with only the cable simulation device 1B.
[0153] <F.3D Virtual Space and Device Behavior Data>
[0154] Refer again Figure 2 The control of the robot 30 and the conveyor 230, which are the objects of the system simulation, and the behavior of these devices in the 3D virtual space are explained.
[0155] As described above, both the robot 30 and the conveyor 230 have movable parts capable of moving via multiple drive axes. Each drive axis is driven by a servo motor. Specifically, the robot 30 has multiple arms driven by the rotation of robot servo motors (servo motors 1301-1304). Each robot servo motor drives its corresponding arm by rotating. The robot controller 310 controls the drive of the robot servo motors to perform 3D drive on each arm. The behavior of the robot 30 is achieved by driving these arms. Similarly, the conveyor 230 and the pallet 9 on the transport surface are moved by the rotation of servo motors 41 and 42. The amount of movement (speed, direction, distance, etc.) is determined by the amount of rotation (direction, angle) of the servo motors 41 and 42. The behavior of the conveyor 230 and the pallet 9 is achieved by driving these servo motors 41 and 42.
[0156] In this implementation, each arm 301 of the robot 30 is associated with a virtual axis, and the position of the robot 30 is determined by the position of each axis. The PLC 200 controls the robot 30 according to the target position of each axis changing in a time sequence, thereby changing the speed and trajectory of each arm 301 to conform to the target speed and trajectory.
[0157] The target position of robot 30 is, for example, pre-stored in PLC 200. Robot controller 310 receives the target position from PLC 200, determines the rotation amount of each robot servo motor based on the received target position, and outputs the instruction value specifying the determined rotation amount to each robot servo motor.
[0158] The system simulation device 1A is able to calculate the behavior of the objects corresponding to the workpiece 232 and the conveyor 230 that transports the workpiece 232 in the 3D virtual space, just like the robot 30, and output the calculation results as equipment behavior data 2520.
[0159] Furthermore, in control system 2, the devices are synchronized with each other at all times. Specifically, multiple devices connected to field network 22, namely PLC 100, robot controller 310, servo motor drivers 531, 532 and robot arm 210, have timers 90, 91, 92, 93 and 94 that are synchronized with each other at all times. The devices perform actions based on these timers, thereby synchronizing the timing of data transmission and reception, including control commands.
[0160] (F1. Equipment behavior data (joint angle time series data T(t)))
[0161] An example of the process by which the robot 30 calculates its position / pose in a 3D virtual space according to this embodiment will be described. In this embodiment, the absolute coordinate system, which is common to the robot 30 and the PLC 200, is exemplified as the coordinate system of the 3D virtual space. When calculating the position in the absolute coordinate system, in this embodiment, the rotation amount of servo motor 1301 is represented as αA, the rotation amount of servo motor 1302 is represented as αB, the rotation amount of servo motor 1303 is represented as αC, and the rotation amount of servo motor 1304 is represented as αD. By performing calculations on the servo motor rotation amounts (αA, αB, αC, αD) using a defined function, the servo motor rotation amounts (αA, αB, αC, αD) can be converted into the joint positions (3D coordinates P(x, y, z)) in the 3D virtual space. In this embodiment, the system simulation device 1A calculates the behavior (time series change of position in the 3D virtual space) of the first object configured in the 3D virtual space corresponding to the device (more specifically the arm 301 of the robot 30) through the device behavior generation module 151, and outputs the joint angle time series data T(t) as the calculation result, i.e., the device behavior data 2520.
[0162] (F2. Method for generating joint angle time series data T(t))
[0163] Furthermore, the joint angle time series data T(t) can also be generated using CAD (Computer-Aided Design) without relying on the time series changes of the servo motor rotation amount mentioned above. More specifically, when the device behavior generation module 151 has a CAD (Computer-Aided Design) module, after the user specifies a predetermined movement (behavior) to be taken by the arm of the robot 30, the CAD module performs motion planning on the specified movement, and obtains the joint angle time series data T(t) as the result of the motion planning calculation. Hereinafter, as an example of the predetermined movement mentioned above, pick-and-place is widely used in industrial robot applications, but the types of movements are not limited to pick-and-place.
[0164] <G. Model of the Simulated Object>
[0165] Figure 6 This is a schematic diagram illustrating an example of a robot arm with cables and guides installed. In this embodiment, the model used as the simulation object is... Figure 6 The image shows an N-link robot arm with N links. Figure 6 The model has joints θ1, θ2, θ3, ..., θ4 in the direction from the root of the arm to the end effector (robot hand 210). N The arm also includes a connection to the absolute coordinate system Σ. L0 The origin (root of the arm) and the link L0 of joint θ1, the link L1 connecting joint θ1 and joint θ2, the link L2 connecting joint θ2 and joint θ3, ..., the link connecting joint θ N-1 and joint θ N N links L N The connecting rod is equivalent to the axis connecting the joints. The model also includes parameters for connecting rod L. n (1≤n≤N) The guide G is set n (1≤n≤N) and in the adjacent guide G n With the guide G (n+1) The cable C that is extended between n (n = 1, 2, ..., N-1)
[0166] Import the absolute coordinate system ΣL0 with the root of link L0 as the origin into the model, and the coordinate system in link L... n Root (connecting rod L) n (the end on the origin side) and connecting rod L n Coordinate system ΣL rotating together n In the model, the coordinate system ΣL n The joint angle θ(t) at time t is given by [θ1(t), θ2(t), ..., θ...]. N-1 (t)] T It is represented by a nonlinear function. Figure 6 In the middle, connecting rod L n The black dots on the model indicate the installation location. This installation location is envisioned as the placement of guides and sensors, equivalent to the position and orientation of pre-prepared threaded holes on the arm of the actual robot 30. In the model, the coordinate system ΣL n The guide G n The position / or orientation is the relative position / or orientation P based on the installation position. n And provided. To simplify the explanation, the position / pose P will be described below. n Called the bootloader G n Position / Posture P nIt can guide the model in its absolute coordinate system ΣL0. n Position / posture as joint angle θ n (t)(1≤n≤N) and position / pose P n We use a function with (1≤n≤N) to process it.
[0167] (G1. Model of a portion of the cable)
[0168] Figure 7 This is a schematic diagram illustrating a model of a portion of the cable used for simulation. In the simulation of this embodiment, a model representing the shape of the portion of the cable is generated, and a physical simulation is performed using the generated model. In this embodiment, the model of the portion of the cable includes multiple segments constituting the cable and connectors connecting the segments. The segments of the model are treated as rigid bodies in the physical simulation, and the connectors act as constraints on the behavior of the segments on both sides. That is, in the simulation, when calculating the behavior of a segment, forces and torques, as shown in Equation (1), are provided for components of that behavior, according to Hooke's Law, and are proportional to the difference between the relative position and orientation of adjacent segments and the initial relative position and orientation. The method for calculating the spring constant of Equation (1) will be described later.
[0169] [Mathematical Expression 1]
[0170]
[0171] In equation (1), the force (F) is shown. x F y F z ) and torque (τ) φ , τ θ , τ ψ The first term on the right is Hooke's proportional term, K. x K y K z K φ K θ K ψ It is the spring constant. The initial relative positions (x, y, z) and attitudes (φ, θ, ψ) of adjacent segments represent the current relative positions / attitudes. The second term is the damping term, ζ. x ζ y ζ z ζ φ ζ θ ζ ψ It is the damping coefficient, and the dot operator above the relative position / attitude represents the first derivative with respect to time.
[0172] Figure 7 Part of cable C shown n The model consists of a total Sn It consists of two segments of equal length, Seg, and connectors (not shown) that connect them in a row. In the model, the first segment is fixed to the guide G. n Position / Posture P n , S n Seg segment via S n One connector and part of the cable C (n+1) The first segment, Seg, is connected. Therefore, according to part of cable C... n The model, part of the cable C n The shape is calculated by S n The position / or orientation of each segment is provided. More specifically, in order to limit the combination between segments Seg to adjacent ones, the constraint equation shown in Equation (1) is constructed as a sparse matrix. Therefore, in the simulation, an iterative method such as the Gauss-Seidel iterative method is used to derive the convergent solution. By simulation, the guide G is calculated as time t elapses. n Position / Posture P n and the guide G (n+1) Position / Posture P (n+1) Changes occur, resulting in partial cable C n Its shape (behavior) also changes.
[0173] <H. Specific models and calculations of behavior in physical simulation>
[0174] Reference Figure 8 , Figure 9 as well as Figure 10 A specific example of the physical simulation of a model that uses some cables is explained.
[0175] (H1. Specific model of physical simulation of part of the cable)
[0176] Figure 8 This is a diagram illustrating an example of a physical simulation model of the cable in this embodiment.
[0177] The cable simulator 165 of this embodiment includes a physical simulator for performing physical simulations. The object (second object) corresponding to a portion of the cable that is the object of the physical simulation includes rigid body links, which are modeled by connecting multiple rigid bodies 304 by using connectors 305 to join adjacent segments, i.e., rigid bodies 304. Specifically, in the simulation, the rigid bodies 304 are considered as segments with defined dimensions and shapes, and in the rigid body links, the rigid bodies 304 are connected in a row via connectors 305. The physical simulation parameters 124 include parameters such as the size and shape of the segments.
[0178] Rigid body 304 is, for example, an indeformable cylindrical object. In the physics simulation, focusing on the center of rigid body 304, rigid body 304 is defined as a point mass having the current position and the immediately preceding position of that center. Joint 305 is equivalent to, for example, a joint such as a spring or damper; joint 305 in the model corresponds to the aforementioned constraint conditions limiting parallel movement and rotation in the x, y, and z axes of adjacent rigid bodies 304. Figure 8 The diagram shows the state in which the two ends of a column of rigid bodies 304 are mounted to the surface 306 of the arm of a robot 30 using an object 302 corresponding to the cable guide 350. Thus, in the cable simulation, the rigid body link is modeled as a joint structure that adds constraints to the relationship between adjacent rigid bodies based on the position / orientation of the rigid body 304. Figure 8 In this configuration, the rigid body link consists of three rigid bodies 304, but the number of rigid bodies 304 is not limited to three. That is, the number of rigid bodies 304 depends on the cable length specified by the parameter group. Figure 23 It is set by the cable length.
[0179] In the cable simulation, part of the cable behavior calculation module 166 includes a physics simulator. The physics simulator, based on the given behavior (joint angle time series data T(t)) of the object corresponding to the robot 30 in a 3D virtual space, uses a set of parameters to calculate the representation... Figure 8 The constraint equations, including the constraint conditions of the rigid body link model, are used to calculate the behavior of the rigid body link model in 3D virtual space (cable behavior data 2521).
[0180] Figure 9 It is shown Figure 8 A diagram illustrating an example of the simultaneous equations 147 of the physical simulation model of the cable. Simultaneous equations 147 contain... Figure 8 The rigid bodies 304 correspond to equations Ati, Bti, and Cti, respectively. Each equation in the simultaneous equations 147 contains variables related to the position (coordinates of the x, y, and z axes) and attitude (tilts ψ (roll), θ (pitch), and φ (yaw) of the x, y, and z axes, respectively). The values of these variables are calculated by solving the simultaneous equations (Equation 147). Specifically, the cable simulator 165 uses parameter 139 to repeatedly solve the simultaneous equations (Equation 147) based on the joint angle time series data T(t) at each time step ti. Therefore, the values of the variables corresponding to the position / attitude of each rigid body 304 can be calculated at each time step ti.
[0181] (H2. Position update that conforms to constraints)
[0182] Part of the cable behavior calculation module 166 includes a physics simulator. More specifically, in the cable simulation, the position of rigid body 304 is updated (corrected) based on position-based dynamics (PBD). Figure 10 This is a schematic diagram showing the updated positions of the physical simulation in this embodiment. (Refer to...) Figure 10 The update process for the position of rigid body 304 implemented in the cable simulation is explained.
[0183] Specifically, in the cable simulation, the behavior of each rigid body 304 is calculated at each time step ti. If the simulation results in adjacent rigid bodies 304 colliding with each other, then there is a situation where one of the colliding rigid bodies 304 intrudes (entraps) into the other. Figure 10 (A)). The cable simulator 165 detects whether rigid body 304 intrudes into other rigid bodies 304. Figure 10 (A)).
[0184] exist Figure 10 In (A), the cable simulator 165 calculates predicted positions Xpredict (Xpredict = x0 + v × Δt, where x0 = calculated position, Δt = time of time step ti, and v = velocity) based on the calculated positions x0 of the objects (rigid bodies 304) in the 3D virtual space at each time step ti. Collisions between objects are detected based on the relationship between their predicted positions Xpredict. A collision may be defined as the distance between the position (coordinates) of one object and the position (coordinates) of another object in the 3D virtual space being, for example, below a threshold. The threshold may be a value based on the object's dimensions (width, height, etc.). Furthermore, the collision detection method is not limited to this.
[0185] When in Figure 10 When an intrusion is detected in (A), the cable simulator 165 changes the relative positions of the colliding rigid bodies 304 in a manner that resolves the intrusion (position: Xpredict). Figure 10 (B) At this time, when the position X0 (position: Xpredict) of a rigid body 304 changes to the position X (corrected position: Xcorrect), the positions of other rigid bodies 304 adjacent to that rigid body 304 may shift along with this change. Then, after repeatedly performing such position changes, the behavior of each rigid body 304 in the cable simulation becomes a stable state. In this embodiment, the above-mentioned constraints correspond to the physical limiting parameters used to transfer the behavior of the object to such a stable state.
[0186] After changing the position of rigid body 304 via cable simulator 165, i.e., calculating the corrected position X of rigid body 304 (Xcorrect), the velocity v is then changed. Figure 10 (C)). Specifically, using the cable simulator 165, the changed speed Vcorrect is calculated according to Vcorrect = (X-X0) / Δt, and the calculated speed Vcorrect is set as the speed v for the next time step ti. Figure 10 The velocity of (A) is vt).
[0187] The above explains the update of the x-coordinate position of rigid body 304. In the cable simulation, the y-coordinate and z-coordinate positions are updated in the same way as the x-coordinate position.
[0188] Thus, the behavior of the rigid body link is calculated by repeatedly performing operations based on the joint angle time series data T(t) following the equations (Equations 147 and (1)), which represent the partial cable C n The modeling yields the position / orientation relationships of adjacent rigid bodies in a rigid link, as well as the constraints imposed on these relationships by the joint 305. At each time step ti in the simulation, the behavior of the rigid link can be calculated for states where rigid body 304 intrusion is absent (the trapped state is eliminated).
[0189] In the cable simulation of this embodiment, as a method for making part of cable C n The parameters related to the constraint conditions of equation (1) that transfer the behavior to a steady state can include parameters representing the stiffness of cable 340. Stiffness parameters include, for example, the inherent parameters of the material of cable 340: Stiffness and Damping. Stiffness represents the difficulty of deformation of rigid body 304, for example, equivalent to Young's modulus. Damping represents the damping characteristics of rigid body 304 relative to vibration.
[0190] <I. Partial Cable Optimization>
[0191] The optimization of certain cables in this embodiment will be explained. The cable simulator 165, through the partial cable behavior calculation module 166, optimizes the behavior of certain cables (C). n Perform partial cable path optimization for the object. Partial cable path optimization is equivalent to partial cable C. n Optimization of installation parameter sets. Partial cable C n The installation parameter set includes the component cable C. n The number of segments S n, Guide G n Position / Posture P n and the bootloader G (n+1) Position / Posture P (n+1) These three parameters.
[0192] The cable simulator 165 optimizes a portion of the cable path using all types of candidate parameter sets composed of parameter candidates. More specifically, a cable shape model is created based on physical parameters. Based on this cable shape model, a model of the initial cable shape corresponding to the shape of the robot arm is generated, using one candidate parameter set and initial joint angle data T(0) corresponding to t=0 in the joint angle time series data T(t). Then, based on this generated model, the cable simulator 165 calculates cable behavior data 2521 representing the cable shape corresponding to the joint angle time series T(t) through physical simulation as time t elapses. The cable simulator 165 determines whether the candidate parameter set used in the simulation satisfies the following constraints based on the calculated time series cable shape. The candidate parameter set determined to satisfy the constraints is retained as the portion of the cable C. n The optimal parameter set.
[0193] (I1. Load Calculation)
[0194] The load calculation module 167 calculates load information 142 based on cable behavior data 2521. This load information 142 indicates the load applied to a portion of cable C. n The load on the rigid link (the second object). In this embodiment, the types of loads that can be calculated include, but are not limited to, bending, elongation, torsion, impact, and repulsion.
[0195] The load calculation module 167 calculates the load applied to each rigid body 304, i.e., each position 1411, according to a prescribed calculation based on the behavior (position and posture) of each rigid body 304. For example, the torsion and bending of each rigid body 304 are calculated based on the behavior of the rigid body 304 adjacent to it; the elongation is calculated based on the distance between adjacent rigid bodies 304 (the greater the distance, the greater the elongation); and the repulsive force is calculated based on the intrusion distance during collision (the greater the distance, the greater the repulsive force). Furthermore, the impact calculated by the load calculation module 167 may include collisions between the rigid body 304 and other objects different from the rigid body 304. Other objects include peripheral devices, the robot 30 with the arm 301, and the workpiece 232, etc. The load calculation module 167 detects collisions between the rigid body 304 and other objects. More specifically, the load calculation module 167 detects the aforementioned collision based on the relative positional relationship in 3D virtual space between the behavior (position / orientation) of the rigid body 304 of the cable shown in the cable behavior data 2521 and the behavior (position / orientation) of other objects shown in the device behavior data 2520. For example, the load calculation module 167 detects a collision between the rigid body 304 and the arm 301 based on the relative positional relationship in 3D virtual space between the position / orientation of the rigid body 304 at time step ti shown in the cable behavior data 2521 and the position / orientation of the arm shown in the joint angle time series data T(t).
[0196] (I2. Restrictions)
[0197] The aforementioned constraints, for example, include those applied to part of cable C. n The load on the rigid body link shall not exceed the following threshold conditions. Cable parameter 139 includes these thresholds as parameters.
[0198] Condition 1. The impact on the cable due to contact with the robot arm and peripheral equipment is below the threshold (Impulse_th).
[0199] Condition 2. The elongation rate of the cable segments relative to the initial distance is below the threshold (Stretch_th).
[0200] Condition 3. The radius of curvature of the cable is not lower than the threshold (Curvature_th) determined by the material of the cable.
[0201] In some cables C n In the optimization of the parameter set, firstly, the set D of candidate parameter sets generated based on all combinations of installation parameter candidates is... 1,n formulation.
[0202] [Mathematical Expression 2]
[0203] Using equations (2) and (3), the parameter set D is...1,n Formulating it. First, the connecting link L is... n and connecting rod L n+1 The candidate set of the number of cable segments is represented as follows Among them, I n These are candidate numbers for the number of segments. Next, the segments will be installed on link L. n The candidate set of guide position / pose is represented as Among them, J n It is the number of candidate positions / or orientations of the guide. Based on these candidate sets, D in equation (2) is obtained. 0,n .
[0204]
[0205] The set D of candidate parameter groups that satisfy conditions 1, 2, and 3 above. 1,n It can be expressed by equation (3).
[0206] [Mathematical Expression 3]
[0207]
[0208] in, Indicates that it is set on the connecting rod L n Having position / posture P n,jn The guide and the setting on the link L n+1 Having position / posture P n+1,jn+1 The number of segments S between the guides n,in Some of the cables were subjected to impact at time t due to contact with the robot arm and peripheral equipment. Similarly, and These represent elongation or radius of curvature, respectively.
[0209] Here, set D is not included. 1,n The set of parameter groups is directly used as part of cable C. n The set of optimal parameter groups, in this embodiment, is based on a robustness factor, making each part of the cable C... n The parameter set was further optimized.
[0210] This is because: according to set D 1,n When cables are installed in the parameter group, errors in cable modeling, physical simulation, or installation during cable installation may lead to discrepancies in set D. 1,n This includes a set of parameters that could be the cause of malfunctions during robot 30's operation. In particular, the large deviations in cable routing due to user skill levels during installation may prevent the cable from functioning as described in set D. 1,n The optimal parameter set is shown in the diagram for cable installation.
[0211] To prevent the above situation from occurring, the cable simulator 165 applies the robustness condition to part of the cable C 1,n and determines the optimal parameter set. In this embodiment, robustness indicates whether the parameter set to be optimized is vulnerable to the above errors. A parameter set that is not vulnerable to errors has robustness, and a parameter set that is vulnerable to errors does not have robustness. n
[0212] In this embodiment, attention is focused on the number of sections S n of part of the cable C n for its robustness. More specifically, even when the number of sections S n increases or decreases within a certain range of ±R, the above-mentioned limitation of formula (3) is satisfied. That is, in the set D 1,n even when the number of sections S n increases or decreases within a certain range of ±R, the partial set of parameter sets that satisfy conditions 1 to 3 is the set D 2,n of the optimal parameter sets with this robustness. The set D 2,n of the optimal parameter sets is represented by the following formula (4). The cable parameter 139 includes parameters within the range R. n
[0213] [Mathematical formula 4]
[0214]
[0215] The cable simulator 165 performs the above processing (simulation) on each part of the cable C n . As a result, for each part of the cable C n the set D 1,n of the optimal parameter sets and the set D 2,n are calculated.
[0216] <J. Overall cable optimization>
[0217] The cable simulator 165 derives a parameter set that minimizes the cable length of the overall cable 340, that is, minimizes the number of sections of the overall cable 340, based on the set D n of the optimal parameter sets of each part of the cable C 2,n obtained through partial cable optimization. Thus, the optimized parameter set for installing the overall cable 340 is determined.
[0218] More specifically, the cable simulator 165 derives one or more parameter sets that satisfy the sharing condition among the parameter sets of the set D n of adjacent parts of the cable C 2,n . In this embodiment, the sharing condition includes the following condition: for adjacent (adjacent) parts of the cable Cn Each other, relaying between the two sections of the cable, that is, the guide G shared by the two sections of the cable. n (G (n+1) Position / Posture P n (P (n+1) The same applies. Cable simulator 165 uses cable C from various parts. n The set of optimal parameter groups D 2,n Extract one or more parameter groups that meet the sharing condition, and determine the parameters for each part of the cable C. n The parameter set D of the overall cable 340, consisting of one or more extracted parameter sets. 3,n .
[0219] More specifically, the parameter determination module 170 determines the adjacent (adjacent) portion of the cable C. n and some cables C (n+1) Each group, compared with the cable set D of each part 2,n The parameter set. The comparison result is that, through parameter determination module 170, from part of cable C... n set D 2,n and some cables C (n+1) set D 2,n The guide G is extracted (determined) separately to satisfy the requirement of relaying between the two parts of the cable in this group. n Position / Posture P n One or more optimal parameter sets that share (are the same) this condition in both cable sections. Regarding the aforementioned relay guide, for example in... Figure 6 In the group of adjacent cables C1 and C2, guide G2 is shown.
[0220] Through parameter determination module 170, following the above process, and based on shared conditions, from each part of cable C... n set D 2,n Extract one or more optimal parameter sets from these extracted cable C parts. n The set D3 consisting of the optimal parameters is represented by equation (5).
[0221] [Mathematical Expression 5]
[0222]
[0223] The cable C shown in D3 n One or more optimal parameter sets are parameter sets that satisfy the constraints (impact, elongation, radius of curvature) and shared conditions, also known as installable parameter sets.
[0224] The parameter determination module 170 ultimately determines the parameters for each part of cable C from one or more parameter groups in set D3. n The decision is to minimize the number of segments in the overall cable 340, i.e., to minimize the number of segments in part C of the cable. n The number of segments S n The parameter group with the smallest total value will determine the cable C of each part. n The set of parameter groups is the optimal parameter group d shown in equation (6). * .
[0225] [Mathematical Expression 6]
[0226]
[0227] Furthermore, multiple optimal parameter sets d that are consistent in calculating the total number of segments constituting the overall cable 340 are calculated. * In this case, the parameter determination module 170 is used based on all the partial cables C. n The impact on the segment, the elongation between segments, and the bending radius are determined from multiple optimal parameter sets d. * Choose one optimal parameter set d * .
[0228] <K. Simplified Simulation Process>
[0229] Figure 11 This is a diagram schematically illustrating an example of a time series simulation of this embodiment. Figure 11 In this context, the cable simulation processing performed by the cable simulation device 1B is represented in conjunction with peripheral processing. For illustration, the device behavior data 2520 used in the following cable simulation represents the joint angle time series data T(t).
[0230] Reference Figure 11 The user operates the operation unit 106 to input instructions for setting up system simulation and adding cable simulation to the information processing device 100 (steps S80 and S83). The processor 102, according to the user's instructions, sets various parameters for system simulation in a manner that enables system simulation to be performed. Furthermore, the processor 102 sets a state that enables cable simulation to be performed according to the instruction for adding cable simulation. For example, the cable simulator 165 is set so that it can be referenced to device behavior data 2520 (joint angle time series data T(t)).
[0231] The user operates the operation unit 106 and inputs instructions to the information processing device 100 to perform system simulation and save device behavior data 2520 (step S85).
[0232] The processor 102 starts the system simulation device 1A (step S87), performs system simulation, saves (holds) the device behavior data 2520 as the execution result in the storage device 111 (step S88), and outputs a notification indicating that the device behavior data 2520 has been saved to, for example, the display 109 (step S89).
[0233] The user operates the operation unit 106 and inputs cable parameters 139 into the information processing device 100 (step S91). The parameter setting program 145 executed by the processor 102 saves the cable parameters 139 received by the operation unit 106 to the storage device 111.
[0234] The user operates the operation unit 106 and inputs an instruction to the information processing device 100 to start cable simulation (step S93). The processor 102 starts the cable simulator 165 according to the instruction to start cable simulation.
[0235] After the cable simulator 165 is started, cable simulation is performed (step S100). More specifically, in order to optimize some cables, simulation is repeatedly performed (loop processing) for each part of the cable while changing time t, and overall cable optimization is performed based on the optimal parameter set calculated for each part of the cable.
[0236] Evaluation module 177 performs evaluation processing on the cable simulation results (step S130). Evaluation module 177 outputs evaluation data 144 as the evaluation result (step S140). For example, an image based on evaluation data 144 is displayed on display 109.
[0237] (K1. Overview of cable simulation process)
[0238] Figure 12 yes Figure 11 The flowchart for cable simulation (step S100) is shown below. (Refer to...) Figure 12 When the user specifies a predetermined motion (pick-up and drop) from the operation unit 106, the joint angle time series data T(t) equivalent to the device behavior data 2520 is calculated by the motion planning of the device behavior generation module 151 of the cable simulator 165 (step S88a).
[0239] Cable simulator 165 performs partial cable optimization processing on n cables of different parts (step S110), targeting each part of cable C. n Calculate the set D of parameter sets consisting of one or more optimal parameter sets. 2,n (n = 1, 2, 3...), based on the calculated cable C for each part n The set of optimal parameter groups D 2,nTo calculate the optimal parameter set d for the entire cable 340 * (Step S120). Optimal parameter set d * This is equivalent to an installable parameter set that allows cables to be installed on robot 30.
[0240] (K2. Optimized processing flow for some cables)
[0241] Figure 13 yes Figure 12 The flowchart for partial cable optimization processing (step S110) is shown below. (Refer to...) Figure 13 For calculating a certain part of the cable C n The set of optimal parameter groups D 2,n The processing is explained. The set D of optimal parameter sets for other cable sections is calculated by applying the same processing to those other sections as well. 2,n Here, cable parameter 139 contains multiple candidate parameter groups set by the user.
[0242] First, the first candidate parameter group of cable parameter 139 is set as the object parameter group for simulation, and the joint angle time series data T(t) is set (step S111). The partial cable behavior calculation module 166 generates the partial cable C using the object parameter group, the segment dimensions of the physical simulation parameter 124, and the shape model of the robot arm. n The initial shape model (step S112). This part of the cable C n For example, using the model Figure 8 The model of rigid body linkage and Figure 9 Equation 147 represents this.
[0243] According to part of cable C n The initial shape model is used to calculate the behavior (shape change) of the cable associated with the behavior of the arm 301 of the robot 30 (step S113). That is, through the partial cable behavior calculation module 166, based on the joint angle time series data T(t), the simultaneous equations (Equation 147) are solved repeatedly at each time step ti, thereby calculating the variable P corresponding to the position / pose of each rigid body 304 at each time step ti. n The value, i.e., the behavior.
[0244] Based on the time-series changes in position / pose P calculated for this part of the cable n To determine whether the behavior of this portion of the cable meets the constraint conditions (step S114). More specifically, the load calculation module 167 calculates the load applied to the rigid body link, which is the model of the portion of the cable, and the constraint condition determination module 168 determines whether the behavior of this portion of the cable meets the constraint conditions based on the load and using the threshold of the constraint conditions of the cable parameter 139 (step S115).
[0245] When it is determined that the constraint conditions are not met ("No" in step S115), it is determined whether the optimization of the parameter group for this part of the cable has ended, that is, whether the optimization process for this part of the cable has been implemented using all candidate parameter groups of cable parameter 139 (step S119). If it is determined that the optimization of the parameter group for this part of the cable has ended ("Yes" in step S119), Figure 8 The processing ends, but if the optimization of the parameter group for this part of the cable is not finished ("No" in step S119), return to step S111. In step S111, the next candidate parameter group for cable parameter 139 is set as the simulated object parameter group. For the object parameter group, the processing of step S112 and thereafter is repeated in the same way as above.
[0246] On the other hand, when it is determined that the constraint condition is met ("Yes" in step S115), the robustness determination module 169 uses the range R of the cable parameter 139 to determine whether the behavior of this part of the cable meets the robustness condition (step S116).
[0247] If the robustness condition is not met (step S117 is "No"), proceed to step S119. If the robustness condition is met (step S117 is "Yes"), the cable simulator 165 registers the object parameter group as that part of cable C. n The optimal parameter set (step S118). That is, the cable simulator 165 includes the object parameter set into this part of the cable C. n set D 2,n middle.
[0248] By implementing [measures] on each part of the cable Figure 13 The processing, targeting the various cable C components. n Calculate the set D consisting of one or more optimal parameter groups. 2,n .
[0249] (K3. Overall cable optimization process)
[0250] Figure 14 yes Figure 12 The overall cable optimization process (step S120) is illustrated in the flowchart. (Refer to...) Figure 14 To calculate the optimal parameter set d * The process will be explained.
[0251] The parameter determination module 170 determines the configuration of each section of cable C. n set D 2,n With the adjacent cable C n Part of the cable C (n+1) set D 2,nCompare the position / pose of each parameter group P n The value of P is used to determine the position / pose that satisfies the adjacent conditions, based on the comparison result. n The parameter group. Obtain more than one in each part of the cable C. n set D 2,n The combination of parameter groups that satisfy the adjacent conditions is determined in the middle.
[0252] The parameter determination module 170 sets the first combination among more than one combinations as the object combination (step S121), and calculates the number S of cable segments in each part of the object combination. n The total (step S122) is calculated, and it is determined whether the total cable length shown by the calculated total value is the shortest among all combinations of total cable lengths (step S123).
[0253] The number of segments S not determined in the calculation n When the total value shows the shortest cable length ("No" in step S124), it is determined whether all combinations of parameter groups that satisfy the adjacent conditions have been implemented. Figure 14 Processing (step S126). When it is determined that all combinations have been processed... Figure 14 When the processing is completed ("Yes" in step S126), the processing ends. On the other hand, if it is determined that not all combinations have been processed... Figure 14 When the processing is not complete (step S126 is "No"), return to step S122, set the next combination as an object combination, and perform the same processing as above for the object combination, including step S122 and subsequent processing.
[0254] On the other hand, the number of segments S calculated for the object combination is determined. n When the total value shows the shortest cable length ("Yes" in step S124), the parameter group shown for this object combination (number of cable segments S) is used. n Position / orientation of each guide component P n The optimal parameter set d for the entire cable 340 is determined. * Then install the parameter group (step S125).
[0255] <L. Specific Examples of Cable Simulation>
[0256] A specific example of cable simulation will be explained using the case of installing a cable on the arm of a 6-axis vertical joint robot. Here, the case of installing a cable with product number AWG28x5PIFVV-SB manufactured by Fujikura Co., Ltd. on the arm of a robot of model number Viper850 manufactured by Omron Corporation will be used as an example.
[0257] First, the configuration of the guide components and cables will be explained. Then, according to... Figure 12 The processing steps shown illustrate three aspects: generating joint angle time series, partial cable optimization, and overall cable optimization. In the simulation, multiple motions are envisioned, and the cable path is optimized for each motion.
[0258] (L1. Example of guide and cable configuration)
[0259] Figure 15 This diagram illustrates the optimal number of segments and guide position / pose within the robot arm. An absolute coordinate system Σ is established at the root of the robot arm. L0 Furthermore, the coordinate systems with the equipment installation positions of connecting rods L3 and L4 as the origin are respectively set as Σ. L3 and Σ L4 Since an end effector (robot arm 210) is mounted on link L6, the cable connector attached to the end effector is used instead of guide G6. That is, the position / pose P6 of guide G6 is fixed. Due to the robot arm's construction, it is not possible to install guide G6 on link L5. n Therefore, a portion of cable C4 is connected between guides G4 and G6 of link L4. The parameters for optimizing portion of cable C4 are the number of segments S4 and the guide position / posture P4. Similarly, a portion of cable C3 is connected between guides G3 and G4 of link L3. The parameters for optimizing portion of cable C3 are the number of segments S3 and the guide position / posture P3 and P4. Although guides G2 and G3 of link L2 (not shown) can also be connected via a portion of cable C2 (not shown), since cables from the platform or ceiling are usually connected to guide G3, the parameters of portion of cable C2 are not considered for optimization.
[0260] The following is about Figure 15 The optimization of cable paths for portions C3 and C4, which connect guides G3 and G6 via guide G4, will be explained. That is, as described above, guide G5 is not used. Furthermore, the position / orientation P6 of guide G6 is uniquely determined by the end effector specifications. Therefore, the parameters to be optimized are the number of segments S3 and S4 of portions C3 and C4, and the guide positions / orientations P3 and P4. Additionally, the portions of cable to be simulated are not limited to portions C3 and C4.
[0261] (L2. Specific example of generating joint angle time series)
[0262] Reference Figure 15 and Figure 16 The generation of joint angle time series data T(t) based on motion planning is explained. Figure 16 This diagram schematically illustrates an example of the pick-and-place motion of a robotic arm. When the user specifies pick-and-place as the defined motion, the defined motion comprises a series of actions as follows: the robotic arm picks up the object positioned in front (the object corresponds to workpiece 232) and moves along... Figure 15 The absolute coordinate system Σ shown L0 The fields are separated by, for example, 300mm along the X-axis and 300mm along the Y-axis, so they are placed at a given angle θ. The user uses coordinates Σ... L0 Based on this, seven angles θ are set in 15° increments around the Z-axis from -45° to 45°. This allows the user to specify seven pick-and-place movements corresponding to each angle θ. These seven movements are referred to as motion θ. Here, this will be compared with the absolute coordinate system Σ. L0 The angle parallel to the X-axis is set to 90°. Each of the seven motions originates from... Figure 16 Starting from the initial pose shown in (a), then transitioning to... Figure 16 The pick pose shown in (b) is then transitioned to a place pose corresponding to any one of the seven angles θ, and finally returned to the previous pose. Figure 16 The initial pose shown in (a) is shown. Figure 16 In (c), (d), and (e), the placement poses of -45°, 0°, and 45° are illustrated as motion θ. For each of the seven pick and place motions specified by the user, the device behavior generation module 151 performs motion planning according to the time step ti, and calculates the joint angle time series data T(t) according to the time step ti for each of the seven pick and place motions.
[0263] (L3. Specific examples of partial cable optimization)
[0264] In partial cable optimization, using joint angle time series data T(t), for example, partial cables C3 and C4, the optimal parameter set is obtained, including the number of segments S3 and S4 and the positions / orientations P3 and P4 of guides G3 and G4. To obtain the optimal parameter set, the cable simulator 165 determines the search range for the parameter set.
[0265] In this embodiment, the minimum search range for segment number S3 is set based on the distance between the guide members, and the maximum value is set to approximately several times the distance between the guide members to avoid contact between the cable and the robot arm. With the search range for segment number S3 set in this way, for cable C3, the search range is 100mm to 300mm, and for cable C4, the search range is 200mm to 440mm. In this embodiment, the unit segment length is set to 5mm, and the segment number S... n The sampling interval is set to 4, therefore the candidates for segments S3 and S4 are respectively (S 3,1 S 3,2 S 3,11 ) = (20, 24, ..., 60) and (S 4,1 S 4,2 S 4,13 = (40, 44, ..., 88). The candidate numbers of the optimal parameters for the segments S3 and S4 are I3 = 11 and I4 = 13, respectively.
[0266] As mentioned above, P n Position (x, y, z) and orientation (φ, θ, ψ) are determined by link L n coordinate system Σ Ln The device installation position is used as a reference. The φ direction of the posture is the cable twist direction, but if the cable is pre-twisted before installation on the robot, it will shorten the cable life. Therefore, in this embodiment, φ is fixed at 0. In this embodiment, the candidate set of positions for which the optimal parameters of position P3 are set is set as {(x, y, z)|x=0, y=-40, 0, 40, z=0, 20}. And, for the above reasons, the posture (φ, θ, ψ) of position P3 is fixed as (0, 0, 0), and J3=6. On the other hand, the candidate set of positions for which the optimal parameters of position P4 are set is set as {(x, y, z)|x=0, 50, y=-50, 0, 50, z=0, 20}. The candidate set of postures for which the optimal parameters of position P4 are set is set as {(φ, θ, ψ)|φ=0, θ=0, 45, ψ=-90, 0, 90}. Therefore, J4=72. Furthermore, as mentioned above, the position / orientation P6 of guide G6 is fixed, therefore J6 = 1. Here, the unit of position is mm, and the unit of orientation is degrees. Regarding the candidate optimal parameter combinations, there are 4,752 for cable C3 and 936 for cable C4. In the simulation, cylinders and gaps are used to represent the unit segment length; the length of the cylinder is set to 3.5 mm, the length of the gap is set to 1.5 mm, and the diameter of the cylinder representing the segment is set to 8 mm.
[0267] Cable simulator 165 calculates optimal parameter sets for cables C3 and C4 respectively. Here, as constraints, the impact threshold (Impact_th) of the cable is set to 0, the elongation threshold between segments (Stretch_th) is set to 102%, and the curvature radius threshold (Curvature_th) is set to 48 mm. Furthermore, the curvature radius threshold is set, for example, based on a guaranteed standard for the cable, i.e., 6 times its diameter. In this embodiment, for cable C3, a set D of candidate parameter sets is used. 0,3 The physical simulation is performed using all the parameter sets included, and the set D of candidate parameter sets that satisfy the three constraints 1 to 3 is calculated. 1,3 For this set D 1,3 Calculate the set of candidate parameter sets that satisfy the robustness condition based on the number of segments within a certain range R (e.g., R = 8 mm) for the cable length, i.e., the set of optimal parameter sets D for a portion of cable C3. 2,3 For part of cable C4, the same process as for part of cable C3 is followed, using the set D of candidate parameter groups respectively. 0,4 The physical simulation is performed using all the parameter sets included, and the set D of candidate parameter sets that satisfy the constraints is calculated. 1,4 From set D 1,4 The set D of optimal parameter sets that satisfy the robustness condition is calculated. 2,4 .
[0268] (L4. Specific examples of overall cable optimization)
[0269] Based on the optimization results of the parameter sets of a subset of cables, the parameter sets of the entire cable 340 are optimized. More specifically, using cable simulator 165, the optimal parameter sets D of the subsets of cables C3 and C4 are optimized. 2,3 and set D 2,4 Calculate the set D3 of installable parameter sets that satisfy the adjacency conditions between some cables C3 and some cables C4, and then calculate the optimal parameter set d for the entire cable 340 based on the calculated set D3. * .
[0270] Figure 17 This is a graph showing the simulation results. The graph quantitatively illustrates the relationship between multiple motions and the number of installable parameter sets. These can also be generated and displayed by the evaluation module 177. Figure 18 It is shown Figure 17 The graph shows the relationship between the various motions and the optimal parameter set of the overall cable 340 and the shape of the cable. Figure 17The horizontal axis of the graph represents the angle of the arm when the placement pose is taken as a type of movement, and the vertical axis shows the number of mountable parameter groups for each type of placement pose (each angle of the arm when the placement pose is taken) in accordance with the horizontal axis.
[0271] exist Figure 17 In the calculation, during a 45° movement with a 0° angle difference between links L3 and L4 in the Place Pose position, 71 sets of installable parameters were calculated. As the angle in the Place Pose position decreases, the number of installable parameter sets decreases. At a movement of -60°, the number of installable parameter sets is 1, and at a movement of -75°, the number of installable parameter sets is 0. For example... Figure 17 As shown, there is no cable path for the robot arm to achieve a movement of -75°. In this embodiment, the evaluation module 177 generates a result containing... Figure 17 The evaluation data, including the graph, is 144 and output to the display 109. According to... Figure 15 The simulation results allow production line users to obtain a criterion for determining whether the production line design needs to be redesigned, including the movement of the robot arm, the configuration angle of workpiece 232, and the configuration of peripheral equipment.
[0272] exist Figure 18 In the diagram, the set of installable parameters d calculated for each motion θ (=45°, 0°, -45°) is shown in association with that motion θ. * (i.e., the optimal parameter set d) * The cable shape is also considered in the pick-up and place-down positions. In this embodiment, the evaluation module 177 generates a value including... Figure 18 The evaluation data 144, including the associated information, is output to the display 109. For example... Figure 18As shown, regarding motion θ = 45°, since the angle difference between links L3 and L4 is 0°, there exists an optimal parameter set that is symmetrical to the left and right, i.e., cable installation methods in right-to-left and left-to-right shapes. When the angle decreases in the placement pose, link L4 rotates counterclockwise relative to link L3, thus limiting the cable installation method to a left-to-right shape. Compared to motion θ = 0°, the placement pose with motion θ = -45° is equivalent to a larger rotation angle of link L4 relative to link L3. In this case, the cable may interfere (contact) with the robot arm. To avoid this interference, the position of guide G4 in motion θ = -45° is moved to the upper right compared to guide G4 in motion θ = 0°. This avoids the bending radius limitation in the placement pose with motion θ = -45°, but the installable parameter set d for motion θ = -45° is... * With the installable parameter set d for motion θ = 0° * For comparison, the number of segments S n The length of cable C4 is increased by 60mm, while the length of cable C3 is shortened by 40mm. As a result, the overall length of cable 340 is only increased by 20mm.
[0273] able to pass Figure 17 The information shown, based on the number of installable parameter groups, helps users quantitatively determine whether there is a cable path and the ease of cable installation. Furthermore, it allows for... Figure 18 The information shown is based on installable parameter group d * This assists users in qualitatively analyzing how the optimal values for cable length and guide position / orientation change with the increase of the angle between links L3 and L4 during placement. The optimal parameter sets for each cable component or the installable parameter sets for the entire cable 340 are shown here, along with the results of the export. Figure 17 or Figure 18 The analysis method shown in the information can also be applied to cable path optimization for motions that are different from the motions of the objects set in this embodiment.
[0274] <M. Parameter group settings and UI screen>
[0275] The aforementioned candidate parameter set, including the number of segments for cable simulation and the position / orientation of the guide, can be set by the user. A UI tool is provided by the parameter setting program 145 to assist the user in setting the parameter set. Figure 23 This diagram schematically illustrates an example of a UI screen related to cable parameter settings in this embodiment.
[0276] Displayed on monitor 109 using UI tools Figure 23 The UI screen displays an object image W of workpiece 232 and a 3D image of the arm of robot 30 for cable mounting, shown on the right side of the UI screen via 3D visualizer 164. The 3D images are generated by processor 102 based on CAD data, etc., from device image data 2530.
[0277] Users can operate Figure 23 On the left side of the UI screen, set the candidate parameter group as cable parameter 139. Each candidate parameter group contains parameter 191 and parameter 192 (or 193). Parameter 191 contains the overall cable length 340, and parameter 192 (or 193) contains the position / orientation of each cable guide 350 and a portion of the cable length. Figure 23 For example, as two candidate parameter groups, groups of parameters 191 and 192 and groups of parameters 191 and 193 are shown, but the number of candidate parameter groups is not limited to two. The parameter setting procedure 145 calculates the position / or orientation P of the absolute coordinates of each guide element according to the prescribed calculation based on parameter 192 (or 193). n And calculate the number S segments of the cables installed between each guide. n .
[0278] Furthermore, in the UI, the user can set parameters 194 related to the constraints and parameters 195 specifying the robustness range R. Parameter 194 includes a threshold for the radius of curvature (e.g., 5, etc.) and the display color of the 3D image when the load calculated through simulation exceeds each threshold of the constraints. Cable simulation is performed according to the parameter set in the UI. For example, if it is determined that the load (elongation, radius of curvature, and impact) of a certain part of the cable exceeds a specified threshold, the 3D visualizer 164 will, based on evaluation data 144, [determine / improve / restore the cable's load]. Figure 23 The display color of the object image corresponding to that portion of the cable in the 3D image on the right side of the screen is changed to the color specified by parameter 194 (e.g., blue, red, or green). Therefore, the display color of the cable image shown on the display 109 provides a visual indication of the magnitude of the load applied to the rigid body linkage model of that portion of the cable.
[0279] Figure 24 This diagram shows an example of a screen displaying the installable parameter set of this embodiment in tabular form. The installable parameter set calculated by the cable simulator 165 is displayed on the display 109, for example, in tabular form, via the evaluation module 177. Figure 24 In the table, a portion of the cable length 196 is shown as a value within the robustness range R. When the user... Figure 24When a parameter group is selected in the UI, the 3D visualizer 164 displays a 3D image of the robot with cables and guides installed, according to the selected parameter group. The virtual space information management module 150 generates virtual space information 105 representing the behavior of the robot 30's arm and the cables installed on it, based on device behavior data 2520 (i.e., joint angle time series data T(t)) and cable behavior data 2521, according to the installable parameter group. The 3D visualizer 164 displays a 3D image based on the generated virtual space information 105 on the display 109.
[0280] <N. Calculation Method of Spring Constant>
[0281] In this embodiment, the spring constant of equation (1) is estimated, for example, using Scan2Flex proposed by Hermansson et al., but the estimation method is not limited to using Scan2Flex. (See also...) Figure 19 and Figure 20 The method for estimating (calculating) the bending spring constant kθ in the spring constant is explained. Figure 19 This is a diagram schematically illustrating a method for estimating the spring constant. Figure 20 It is presented in tabular form for Figure 19 A graph showing the vertical displacement measured for each cable length in (a). In estimating the spring constant, the bending spring constant near the joint is calculated based on the cable shape change caused by gravity. For estimation purposes, as... Figure 19 As shown in (a), one end of the actual machine's cable was fixed horizontally, and the cable length was varied from 100mm to 200mm in 20mm intervals. The vertical displacement of the end was measured. The vertical displacement measured for each cable length was... Figure 20 As shown in the figure. In the estimation, as... Figure 19 As shown in (b), a simulation was created that is similar to... Figure 19 (a) A cable model of uniform length, with one end of the cable model fixed horizontally. The mass of the segments constituting the cable model is set in a manner that ensures a consistent overall cable mass, and an acceleration of -9.8 m / s² is assigned in the vertical direction. 2 As gravity, the swing stiffness is calculated to achieve the vertical displacement measured for each cable length. The calculation results are as follows: Figure 20 The bottom paragraph of the table is shown. Based on the average of the calculated values, the bending spring constant kθ is set to 70.5.
[0282] Next, refer to Figure 21 and Figure 22 The method for calculating the torsional spring constant is explained. Figure 21It is a diagram that schematically illustrates the relationship between the torsional moment and the angle of twist for a cylinder's axis. Figure 22 This is a graph showing the relationship between the torsion angle and the torsional torque. In this embodiment, the torsion spring constant kφ near the joint is estimated based on the relationship between the cable's torsion angle and torsional torque. Figure 21 As shown, let the torsion angle of the cable when a torsional torque M is applied be φ, then the relationship between the two is M=kφ×φ.
[0283] An example of the relationship between the torsional torque M applied to the cable by the robotic arm and the torsion angle φ. Figure 22 The graph is shown. The slope of this graph is calculated using the least squares method to be, for example, 25.7. This corresponds to the torsional spring constant k'φ of the entire cable. That is, in the simulation, since the segment unit length is set to 5mm, the number of segments S contained in a 300mm cable is... n Since the value is 60, the number of joints N connecting them is also 60. Therefore, according to the relationship k'φ = kφ / N, kφ = 1,542 is calculated.
[0284] In this embodiment, the damping coefficient is determined through trial and error while observing the convergence of the calculation.
[0285] <O. Program>
[0286] The processor 102 of the information processing device 100 implements the system simulation device 1A or the cable simulation device 1B by executing a simulation program. The programs and data used to implement these simulation devices can be stored in the storage device 111.
[0287] The storage medium of storage device 111 is not limited to HDD or SSD.
[0288] Furthermore, simulation-related programs or data can be downloaded to storage device 111 via various communication lines. Alternatively, they can be downloaded to storage device 111 via storage medium 114. Storage medium 114 is a medium that stores recorded programs and other information using electrical, magnetic, optical, mechanical, or chemical means, enabling computers and other devices, machinery, etc., to read the recorded programs and other information. Information processing device 100 can obtain simulation-related programs or data from storage medium 114.
[0289] The program can be executed by one or more processors such as a CPU, or by a combination of a processor and circuits such as ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array).
[0290] <P. Postscript>
[0291] The above-described embodiment incorporates the following technical concept.
[0292] [Structure 1]
[0293] A simulation device (1) whose calculations are performed via multiple guides (G n The simulation device includes a partial cable behavior calculation unit (166) that calculates the behavior of a cable (340) installed on the device (30) using a parameter set (P) related to cable installation, based on the behavior of a first object corresponding to the device configured in a virtual space. n S n )Calculate the portion of the cable (C) between each guide element. n The behavior of the second object in the virtual space corresponding to the configuration of the cable installation, the parameter group (P) n S n The virtual space includes the position and orientation of each of the plurality of guides and the partial cable lengths between each guide; a parameter determination unit (167, 168, 169) that, for each of the partial cables, calculates the load applied to the second object corresponding to the partial cable according to each of the plurality of parameter groups, based on the behavior of the second object corresponding to the partial cable calculated by the partial cable behavior calculation unit using the parameter group, and determines whether the calculated load of the second object corresponding to the partial cable meets the limiting conditions according to each of the plurality of parameter groups; and a parameter determination unit (170) that, for each of the partial cables, determines, from one or more parameter groups determined by the parameter determination unit to meet the limiting conditions, a parameter group that meets the conditions related to the installation of the overall cable obtained by combining the partial cables.
[0294] [Structure 2]
[0295] According to the simulation device of structure 1, the limiting condition includes the condition that the load applied to the second object corresponding to the portion of the cable does not exceed a threshold.
[0296] [Structure 3]
[0297] According to the simulation device of structure 1, the limiting condition includes the following condition: when the length of the portion of the cable varies within a predetermined range (R), the magnitude of the load applied to the second object corresponding to that portion of the cable does not exceed a threshold.
[0298] [Structure 4]
[0299] According to any one of structures 1 to 3, the conditions related to the installation of the overall cable include the following: the positions and orientations of the guides shared between adjacent partial cables are the same.
[0300] [Structure 5]
[0301] According to any one of structures 1 to 4, the behavior of the first object includes behavior calculated according to each predetermined time step (ti), and the partial cable behavior calculation unit calculates the behavior of the second object according to each time step, based on the behavior of the first object corresponding to that time step, using the parameter set.
[0302] [Structure 6]
[0303] The simulation apparatus according to any one of structures 1 to 5, wherein the partial cable behavior calculation unit includes a physical simulator.
[0304] [Structure 7]
[0305] According to the simulation device of structure 6, the second object comprises a rigid body link modeled in such a way that adjacent rigid bodies (304) are joined together by a joint (305). The physical simulator performs calculations based on the behavior of the first object, thereby calculating the behavior of the second object, wherein the equations represent the positional and orientational relationships between adjacent rigid bodies in the modeled rigid body link and the constraint conditions corresponding to the joint applied to the positional and orientational relationships between the rigid bodies.
[0306] [Structure 8]
[0307] According to the simulation device described in structure 7, the constraint conditions include a parameter representing the stiffness of the cable.
[0308] [Structure 9]
[0309] According to the simulation device of structure 8, the load includes the load applied to each of the rigid bodies of the second object.
[0310] [Structure 10]
[0311] The simulation device according to any one of structures 1 to 9, wherein the simulation device further comprises an evaluation unit (177) that evaluates the behavior of the second object calculated by the partial cable behavior calculation unit based on the calculated load.
[0312] [Structure 11]
[0313] The simulation apparatus according to any one of structures 1 to 10, wherein the apparatus includes a robot (30), and the behavior of the first object is calculated by simulation of a robot program having instruction codes for operating the robot.
[0314] [Structure 12]
[0315] According to the simulation device of structure 11, the simulation device executes a simulation program (126, 122) to calculate the behavior of an object corresponding to the peripheral device (230) of the robot configured in the virtual space, the simulation program containing commands or parameters for controlling the peripheral device.
[0316] [Structure 13]
[0317] The simulation apparatus according to any one of structures 1 to 11, wherein the simulation apparatus further comprises an image generation unit (164) that generates an image that visualizes the virtual space.
[0318] [Structure 14]
[0319] A simulation program that enables a computer (100) to perform calculations via multiple bootloaders (G n A method for determining the behavior of a cable (340) installed on a device (30), wherein the method comprises the following steps: determining the behavior of a first object corresponding to the device configured in a virtual space using a parameter set (P) related to cable installation. n S n ) Calculate the behavior of the second object in the virtual space corresponding to the configuration of the partial cables between each guide, which is related to the cable installation parameter set (P n S nThe method includes the position and orientation of each of the plurality of guides within the virtual space and the partial cable lengths between each guide; and for each of the partial cables, determining parameters, the step of determining parameters including the following steps: for each of the partial cables, according to each of the plurality of parameter groups, calculating the load applied to the second object corresponding to the partial cable based on the behavior of the second object corresponding to the partial cable calculated using the parameter group; and for each of the partial cables, according to each of the plurality of parameter groups, determining whether the calculated load size of the second object corresponding to the partial cable meets the limiting conditions, the method further including the following step: in the step of determining parameters, for each of the partial cables, from one or more of the parameter groups that are determined to meet the limiting conditions, determining the parameter group that meets the conditions related to the installation of the overall cable obtained by combining the partial cables.
[0320] The embodiments disclosed herein should be considered illustrative rather than restrictive in all respects. The scope of the invention is set forth not by the description of the above embodiments, but by the claims, and is intended to include all modifications within the meaning and scope equivalent to the claims.
[0321] Label Explanation
[0322] 1: Simulation device; 1A: System simulation device; 1B: Cable simulation device; 2: Control system; 30: Robot; 100: Information processing device; 102: Processor; 104: Main memory; 105: Virtual space information; 106: Operation unit; 108: Output unit; 109: Display; 110: Network interface; 111: Storage device; 112: Optical driver; 114: Storage medium; 116: Local communication interface; 118: Internal bus; 120: Virtual time generation program; 121: Relay program; 122: Physical simulation program; 124: Physical simulation parameters; 126: PLC simulation program; 130: Robot simulation program; 132: Robot parameters; 134: Integration program; 135: 3D visualization data; 136: Image processing program; 137: Cable simulation program; 139: Cable parameters; 142: Load information; 143: Evaluation program; 144: Evaluation Data; 145: Parameter Setting Program; 147: Simultaneous Equations; 150: Virtual Space Information Management Module; 151: Equipment Behavior Generation Module; 152: PLC Simulator; 154: Cycle Generation Module; 155: Workpiece Behavior Simulator; 156: Physical Simulator; 158: Relay Module; 160: Robot Simulator; 162: Workpiece Tracking Module; 164: 3D Visualizer; 165: Cable Simulator; 166: Partial Cable Behavior Calculation Module; 167: Load Calculation Module; 168: Constraint Condition Judgment Module; 169: Robustness Judgment Module; 170: Parameter Determination Module; 177: Evaluation Module; 210: Robot Arm; 232: Workpiece; 252: Behavior Data; 253: Image Data; 301: Arm; 304: Rigid Body; 306: Surface; 310: Robot Controller; 340: Overall Cable; 341, 342, 343, C n Some cables; 350, 351, G, G n : Cable guide; 1371: Limitation condition determination procedure; 2520: Device behavior data; 2521: Cable behavior data; 2530: Device image data; 2531: Cable image data; S n : Number of segments; P n : Behavior / posture; R: Range.
Claims
1. A simulation device for calculating the behavior of cables mounted on a device via a plurality of guides, wherein, The simulation device has the following features: A partial cable behavior calculation unit calculates the behavior of a second object configured in the virtual space corresponding to the device, based on the behavior of a first object configured in the virtual space corresponding to the device, using a set of parameters related to cable installation. The set of parameters related to cable installation includes the position and orientation of each of the plurality of guides in the virtual space and the length of the partial cable between each guide. The load calculation unit calculates the load applied to the second object corresponding to the partial cable according to each of the plurality of parameter groups, based on the behavior of the second object corresponding to the partial cable calculated by the partial cable behavior calculation unit using the parameter groups. The parameter determination unit determines, for each of the said partial cables, whether the calculated load size of the second object corresponding to that partial cable meets the limiting conditions according to each of the multiple parameter groups; as well as The parameter determination unit, for each of the said partial cables, determines, from one or more parameter sets determined by the parameter determination unit to satisfy the limiting conditions, a parameter set that satisfies the conditions related to the installation of the overall cable obtained by combining the said partial cables. The conditions associated with the installation of the overall cable include the following: the positions and orientations of the guides shared between adjacent portions of the cable are the same.
2. The simulation device according to claim 1, wherein, The limiting condition includes the following condition: the load applied to the second object corresponding to the portion of the cable does not exceed a threshold.
3. The simulation device according to claim 1, wherein, The limiting conditions include the following: when the length of the portion of the cable varies within a predetermined range, the load applied to the second object corresponding to that portion of the cable does not exceed a threshold.
4. The simulation apparatus according to any one of claims 1 to 3, wherein, The behavior of the first object includes the behavior calculated according to each specified time step. The partial cable behavior calculation unit calculates the behavior of the second object using the parameter set according to the behavior of the first object corresponding to each time step.
5. The simulation apparatus according to any one of claims 1 to 3, wherein, The cable behavior calculation unit includes a physics simulator.
6. The simulation apparatus according to claim 5, wherein, The second object includes a rigid body link modeled in a manner that connects adjacent rigid bodies by means of a joint. The physics simulator performs calculations based on the behavior of the first object, following the equations below, thereby calculating the behavior of the second object, whereby the equations represent the positional and orientational relationships between adjacent rigid bodies in the modeled rigid body linkage and the constraint conditions corresponding to the joint applied to the positional and orientational relationships between the rigid bodies.
7. The simulation apparatus according to claim 6, wherein, The constraint conditions include parameters representing the stiffness of the cable.
8. The simulation apparatus according to claim 7, wherein, The load includes the load applied to each of the rigid bodies possessed by the second object.
9. The simulation apparatus according to any one of claims 1 to 3, wherein, The simulation device also includes an evaluation unit that evaluates the behavior of the second object calculated by the partial cable behavior calculation unit based on the calculated load.
10. The simulation apparatus according to any one of claims 1 to 3, wherein, The equipment includes a robot. The behavior of the first object is calculated through simulation of a robot program with instruction code for operating the robot.
11. The simulation apparatus according to claim 10, wherein, The simulation device executes a simulation program to calculate the behavior of an object configured in the virtual space corresponding to the peripheral device of the robot, the simulation program containing commands or parameters for controlling the peripheral device.
12. The simulation apparatus according to any one of claims 1 to 3, wherein, The simulation device also includes an image generation unit that generates images that visualize the virtual space.
13. A recording medium containing a simulation program that causes a computer to perform a method of calculating the behavior of a cable mounted on a device via a plurality of guides, wherein, The method comprises the following steps: Based on the behavior of the first object corresponding to the device configured in the virtual space, the behavior of the second object configured in the virtual space corresponding to a portion of the cable between each guide is calculated using a set of parameters related to cable installation. The set of parameters related to cable installation includes the position and orientation of each of the plurality of guides in the virtual space and the length of a portion of the cable between each guide. as well as For each of the aforementioned cable components, determine the parameters. The steps for determining the parameters include the following: For each of the aforementioned cable portions, according to each of the plurality of parameter groups, the load applied to the second object corresponding to the aforementioned cable portion is calculated based on the behavior of the second object corresponding to the aforementioned cable portion calculated using the parameter group; as well as For each of the aforementioned cable portions, according to each of the multiple parameter groups, it is determined whether the calculated load size of the second object corresponding to that cable portion meets the limiting conditions. The method also includes the following steps: In the step of determining the parameters, for each of the said partial cables, from one or more parameter groups that are determined to satisfy the limiting conditions, a parameter group that satisfies the conditions related to the installation of the overall cable obtained by combining the said partial cables is determined. The conditions associated with the installation of the overall cable include the following: the positions and orientations of the guides shared between adjacent portions of the cable are the same.
14. A computer-implemented method for calculating the behavior of cables mounted on a device via a plurality of guides, wherein, The method comprises the following steps: Based on the behavior of the first object corresponding to the device configured in the virtual space, the behavior of the second object configured in the virtual space corresponding to a portion of the cable between each guide is calculated using a set of parameters related to cable installation. The set of parameters related to cable installation includes the position and orientation of each of the plurality of guides in the virtual space and the length of a portion of the cable between each guide. as well as For each of the aforementioned cable components, determine the parameters. The steps for determining the parameters include the following: For each of the aforementioned cable portions, according to each of the plurality of parameter groups, the load applied to the second object corresponding to the aforementioned cable portion is calculated based on the behavior of the second object corresponding to the aforementioned cable portion calculated using the parameter group; as well as For each of the aforementioned cable portions, according to each of the multiple parameter groups, it is determined whether the calculated load size of the second object corresponding to that cable portion meets the limiting conditions. The method also includes the following steps: In the step of determining the parameters, for each of the said partial cables, from one or more parameter groups that are determined to satisfy the limiting conditions, a parameter group that satisfies the conditions related to the installation of the overall cable obtained by combining the said partial cables is determined. The conditions associated with the installation of the overall cable include the following: the positions and orientations of the guides shared between adjacent portions of the cable are the same.
Citation Information
Patent Citations
Simulation device, simulation method, and simulation program
JP2016042378A
Interface member wiring design support apparatus, wiring design method, and computer-readable storage medium
EP1130527A2
Simulation device, control device and robot
JP2019081242A