The present disclosure relates to a simulation device and a simulation program capable of estimating a behavior of a target disposed in a three-dimensional virtual space.
Simulation using a computer is applied to various technical fields. As an example in which such the simulation is used for factory automation (FA), for example, PTL 1 (Japanese Patent Laying-Open No. 2016-042378) discloses simulation of a control program executed in a controller that controls movement of a machine.
In the field of the FA, there has been a demand for designing previously routing of a cable attached to an industrial robot that is an example of the machine. More specifically, conventionally, in the case of routing the cable of the industrial robot, a user performs an operation of determining an appropriate attachment position or a cable length while actually operating the cable, but this operation requires a long time because trial and error is repeated. Accordingly, there has been the demand for designing previously the cable routing (such as the attachment position or the cable length).
An object of the present disclosure is to provide a simulation device and a simulation program capable of previously designing the routing of the cable attached to an instrument.
A simulation device according to this disclosure that calculates a behavior of a cable attached to an instrument through a plurality of guides, the simulation device includes: a partial cable behavior calculation unit configured to calculate the behavior of a second target disposed in the virtual space corresponding to a partial cable between the guides using a parameter set regarding cable attachment including a position and a posture of each of the plurality of guides in a virtual space and a partial cable length between the guides based on the behavior of a first target corresponding to the device disposed in the virtual space; a load calculation unit configured to calculate a load applied to the second target corresponding to the partial cable based on the behavior of the second target corresponding to the partial cable calculated by the partial cable behavior calculation unit using the parameter set for each of a plurality of the parameter sets for the each partial cable; a parameter determination unit configured to determine whether calculated magnitude of the load of the second target corresponding to the partial cable satisfies a constraint for each of the plurality of parameter sets for the each partial cable; and a parameter decision unit configured to decide a parameter set satisfying a condition regarding attachment of the entire cable into which partial cables are integrated, from at least one parameter set determined by the parameter determination unit to satisfy the constraint for the each partial cable.
According to this disclosure, the parameter set can be determined for each partial cable, and the parameter set for attaching the entire cable to the instrument can be determined from the determined parameter set of each partial cable.
In the above disclosure, the constraint may include a condition that the magnitude of the load applied to the second target corresponding to the partial cable does not exceed a threshold.
According to this disclosure, the parameter of each partial cable can be determined according to the condition that the magnitude of the load applied to the second target corresponding to the partial cable does not exceed the threshold.
In the above disclosure, the constraint may include a condition that the magnitude of the load applied to the second target corresponding to the partial cable does not exceed a threshold when the length of the partial cable changes within a predetermined range.
According to this disclosure, the condition that the magnitude of the load does not exceed the threshold even when the length of the partial cable changes in a predetermined range, namely, the condition that robustness with respect to the length of the cable is satisfied can be applied to the condition of the parameter determination of the partial cable.
In the above disclosure, the condition regarding the attachment of the entire cable may include a condition that a position and a posture of a guide shared between the adjacent partial cables are common.
According to this disclosure, the condition of the parameter of the entire cable includes the condition that the position and the posture of the guide shared between the adjacent partial cables are common.
In the above disclosure, the behavior of the first target may include a behavior calculated for each predetermined time step, and the partial cable behavior calculation unit may calculate the behavior of the second target using the parameter set based on the behavior of the first target corresponding to the time step for each time step.
According to the above disclosure, the behavior of the cable can be calculated for each time step based on the behavior of the instrument calculated for each time step.
In the above disclosure, the partial cable behavior calculation unit may include a physical simulator.
According to the above disclosure, the behavior of the cable can be calculated using the physical simulator.
In the above disclosure, the second target may include a rigid link modeled by joining adjacent rigid bodies with a joint in a row, and the physical simulator may calculate the behavior of the second target by performing an arithmetic operation according to an equation representing a relationship between positions and postures of adjacent rigid bodies in the modeled rigid link and a constraint condition imposed on a relationship between positions and postures of the rigid bodies, the constraint condition being a condition corresponding to the joint, based on the behavior of the first target.
According to the above disclosure, the cable can be modeled as a rigid link to which the constraint condition is imposed and calculate the behavior by an equation indicating the model.
In the above disclosure, the constraint condition may include a parameter representing hardness of the cable.
According to the above disclosure, the behavior of the second target corresponding to the partial cable can be calculated using the hardness of the cable to be attached to the instrument.
In the above disclosure, the load may include a load applied to each of the rigid bodies included in the second target.
According to the above disclosure, the load applied to each rigid body can be calculated.
The above-described disclosure may further include an evaluation unit configured to evaluate the behavior of the second target calculated by the partial cable behavior calculation unit based on the calculated load.
According to the above disclosure, the behavior of the corresponding second target can be evaluated based on the calculated load for each partial cable.
In the above disclosure, the instrument may include a robot, and the behavior of the first target may be calculated by emulation of a robot program having an instruction code operating the robot.
According to the above disclosure, the simulation of the behavior of the cable attached to the robot can be performed based on the behavior of the first target calculated by the emulator of the robot program.
In the above disclosure, the simulation device may calculate a behavior of a target corresponding to a peripheral instrument of the robot disposed in the virtual space by executing a simulation program including an instruction or a parameter controlling a peripheral instrument.
According to the above disclosure, the behavior of the second target corresponding to the cable and the behavior of the target corresponding to the peripheral instrument can be calculated in the same virtual space.
In the above disclosure, the simulation device may further include an image generation unit configured to generate an image visualizing the virtual space.
According to the above disclosure, the virtual space of the simulated object disposition can be visualized and provided to the user.
A simulation program according to the present disclosure is a program that causes a computer to execute a method for calculating a behavior of a cable attached to an instrument through a plurality of guides.
The method includes: calculating the behavior of a second target disposed in the virtual space corresponding to a partial cable between the guides using a parameter set regarding cable attachment including a position and a posture of each of the plurality of guides in a virtual space and a partial cable length between the guides based on the behavior of a first target corresponding to the instrument disposed in the virtual space; and determining a parameter for each of the partial cable, the determining the parameter includes: calculating a load applied to the second target corresponding to the partial cable based on the behavior of the second target corresponding to the partial cable calculated using the parameter set for each of a plurality of the parameter sets for the each partial cable; and determining whether calculated magnitude of the load of the second target corresponding to the partial cable satisfies a constraint for each of the plurality of parameter sets for the each partial cable, and the method further includes deciding a parameter set satisfying a condition regarding attachment of the entire cable into which partial cables are integrated, from at least one parameter set determined to satisfy the constraint for the each partial cable in the determining the parameter.
According to this disclosure, the parameter set can be determined for each partial cable, and the parameter set for attaching the entire cable to the instrument can be determined from the determined parameter set of each partial cable.
According to the present disclosure, the routing of the cable attached to the instrument can be previously designed.
With reference to the drawings, an embodiment will be described below. In the following description, the same components and constituents are denoted by the same reference numerals. Those names and functions are the same. Accordingly, the detailed description thereof will not be repeated.
<A. Application Example>
An example of a scene to which the present invention is applied will be described.
Partial cables 341, 342 and 343 are referred to as “partial cables” in the description that is common to partial cables 341, 342 and 343. For example, cable 340 is configured by covering a linear conductor configuring a signal line with an insulator. A material of the insulator is not limited, but a resin material such as plastic, rubber, or vinyl can be used. The material of the conductor is not limited, but a metal having electrical conductivity can be used. For example, cable 340 may include an air cable through which gas such as air flows. Furthermore, since guides 350, 351, and 352 have similar features (shape, material, and the like), guides 350, 351, and 352 are collectively referred to as “guides” in the description common thereto. When cable 340 is attached to robot 30 via the guide, another instrument such as robot controller 310 (see
Considering that cable 340 for the robot is generally expensive and the routing work requires a long time as described above, when the appropriate routing of cable 340 attached to actual robot 30 is previously designed and when the user performs the routing of the cable 340 based on the design result, cost including expenditure and work time that are required for the routing of cable 340 can be reduced. This pre-design is implemented by performing cable simulation by cable simulation device 1B.
More specifically, an information processing device 100 includes cable simulation device 1B and an instrument behavior generation module 151 that generates instrument behavior data 2520 indicating the behavior of the instrument (robot 30). Cable simulation device 1B includes a cable simulator 165 that calculates (estimates) a behavior in a three-dimensional virtual space of an object (hereinafter, also referred to as a second target) corresponding to cable 340 attached to robot 30. Instrument behavior data 2520 indicates the behavior of an object (hereinafter, also referred to as a first target) corresponding to robot 30 and disposed in the same space as the three-dimensional virtual space in which the object of an entire cable 340 is disposed. The “first target” includes, but is not limited to, for example, an object corresponding to robot 30 and robot hand 210 attached to robot 30.
Cable simulator 165 calculates the behavior of the object in the three-dimensional virtual space using instrument behavior data 2520 and a plurality of parameter sets. For example, a three-dimensional absolute coordinate system defined by orthogonal X-, Y-, and Z-axes is applied to the three-dimensional virtual space. For example, cable simulation device 1B can be implemented in information processing device 100 configured of a general-purpose computer, and information processing device 100 executes a predetermined program, thereby implementing instrument behavior generation module 151, cable simulator 165, and an evaluation module 177.
Cable simulator 165 calculates the behavior of cable 340 attached through a plurality of guides installed in robot 30, and determines an optimal parameter set regarding the attachment of entire cable 340 from among the plurality of parameter sets based on the calculated behavior. In order to determine the optimal parameter set regarding the attachment of entire cable 340, cable simulator 165 includes a partial cable optimization unit that optimizes a parameter set of each partial cable and an entire cable optimization unit that optimizes a parameter set of entire cable 340. The partial cable optimization unit is an example of the “parameter determination unit” that determines the optimal parameter set regarding the attachment for each partial cable. In the present disclosure, the parameter set regarding the attachment includes a position and posture of the guide and the cable length.
The partial cable optimization unit includes a partial cable behavior calculation module 166 that is an example of the “partial cable behavior calculation unit”, a load calculation module 167 that is an example of the “load calculation unit”, a constraint determination module 168 that is an example of the “constraint determination unit”, and a robustness determination module 169. Partial cable behavior calculation module 166 optimizes, for each partial cable between guides installed at adjacent positions, the parameter set regarding the attachment of the partial cable using load calculation module 167, constraint determination module 168, and robustness determination module 169. More specifically, in information processing device 100, partial cable behavior calculation module 166 calculates the behavior of the second target disposed in the virtual space corresponding to the partial cable between the guides for each parameter set using each parameter set including the position of each guide in the virtual space and the partial cable length between the guides based on the behavior (instrument behavior data 2520) of the first target corresponding to the instrument disposed in the virtual space.
Load calculation module 167 calculates the load applied to the second target based on the behavior of the second target corresponding to each partial cable calculated by partial cable behavior calculation module 166 for each of the plurality of parameter sets. The type of load calculated by load calculation module 167 is not limited, but may include, for example, bending, elongation, twisting, and impact (collision of the second target) of the second target when the instrument behaves according to instrument behavior data 2520, force (reaction force) applied to the second target in the case of collision, and the like.
Constraint determination module 168 determines whether magnitude of the load calculated for the second target corresponding to each partial cable satisfies the constraint. More specifically, the constraint may include a condition that the magnitude of the load does not exceed a threshold. Furthermore, the constraint may include a condition (hereinafter, also referred to as a robustness condition) that the magnitude of the load applied to the second target corresponding to the partial cable does not exceed the threshold even when the length of each partial cable changes within a predetermined range. When the magnitude of various loads does not exceed the threshold, constraint determination module 168 determines that the magnitude of the various loads satisfies the constraint. Robustness determination module 169 determines whether the magnitude of the load calculated for the corresponding second target of each partial cable satisfies the above robustness condition.
Cable simulator 165 determines, for each partial cable, at least one parameter set determined by constraint determination module 168 or robustness determination module 169 to satisfy the constraint (or the constraint including the robustness condition) as a set D2,n of the optimal parameter set of the partial cable.
A parameter decision module 170 of the entire cable optimization unit is an example of the “parameter decision unit”. Parameter decision module 170 decides an optimal parameter set d* of the entire cable that satisfies the condition regarding the attachment of entire cable 340 into which partial cables are integrated, from the set D2,n of the optimal parameter set of each partial cable determined to satisfy the constraint. For example, the condition regarding the attachment of entire cable 340 includes the condition that such the parameter set that the cable length of entire cable 340 into which partial cables are integrated is minimized.
In the present disclosure, the parameter set satisfying the constraint may be further configured to satisfy robustness against disturbance such as a calculation error by simulation or a cable mounting error of the user. More specifically, as the optimal parameter set of each partial cable, even when the partial cable length is shortened and extended within a certain range, it is determined that the parameter set that satisfies the above-described constraint is optimum.
Once the optimal parameter set for each partial cable is determined, parameter decision module 170 decides the optimal parameter set regarding the attachment of entire cable 340. Parameter decision module 170 decides optimal parameter set d* of entire cable 340 from a set of optimal parameter sets of each partial cable under an adjacent condition that the position and posture of the guide require to be shared between both partial cables in order to couple the adjacent partial cables. In addition, when a plurality of optimal parameter sets can be obtained for entire cable 340, parameter decision module 170 selects a parameter set that minimizes the length of entire cable 340 from the plurality of optimal parameter sets.
As described above, in the present disclosure, cable simulator 165 optimizes the parameter regarding the cable attachment, namely, the parameter set including the cable length and the position and posture (“the position and posture” represents the position and the posture) at which the guide is installed, for the predetermined motion of robot 30 indicated by instrument behavior data 2520. In the simulation, when the position and posture of the guide attaching entire cable 340 and the cable length between the guides are simultaneously optimized, the number of parameters is too large, and a large amount of cost (calculation time or the like) is required for the simulation. In contrast, cable simulator 165 of the present disclosure performs the optimization of the parameter set regarding the attachment of entire cable 340 in a divided manner into the optimization of the parameter set of each partial cable. Thus, the optimization of the parameter set by the simulation can be replaced with the optimization of a limited number of parameters including the position and posture of the adjacent guides and the partial cable length between the guides. Accordingly, the cost for the simulation can be reduced, and the routing of the cable attached to the instrument can be previously designed using the parameter set of entire cable 340 determined by the simulation.
More specific application examples of the embodiment will be described below.
<B. Example of Control System>
In
Referring to
PLC 200 executes a designed control program based on a field value including an output value of a sensor from field network 22 and the like, and gives a target value to robot controller 310 or servomotor drivers 531, 532 according to a result of the execution, thereby controlling robot 30, the instrument regarding the conveyance of conveyor 230, and the like.
Similarly, servomotor drivers 531, 532 drive servomotors 41, 42 of conveyor 230. Encoders 236, 238 are disposed on a rotation shaft of servomotor 41, 42. The encoder outputs the position (rotation angle), the rotation speed, the cumulative rotation speed, and the like of the servomotor to PLC 200 as the feedback values of servomotors 41, 42.
Robot 30 and conveyor 230 move a workpiece 232 in cooperation with each other. At this point, in order to simplify the description, the movement of workpiece 232 will be described, but the description is not limited to the movement. For example, workpiece 232 placed on tray 9 may be machining by robot 30.
In
Robot controller 310 drives the robot servomotor of robot 30. An encoder (not illustrated) is disposed on a rotation shaft of each robot servomotor. The encoder outputs the position (rotation angle), rotation speed, cumulative rotation speed, and the like of the servomotor to robot controller 310 as the feedback value of the robot servomotor.
Servomotor drivers 531, 532 drives corresponding servomotors 41, 42 according to the command value. Control system 2 further includes a photoelectric sensor 6 and an openable stopper 8 in connection with conveyor 230. Photoelectric sensor 6 detects that tray 9 provided on the conveying surface of conveyor 230 reaches in front of a predetermined work tracking area, and transmits a detection value to PLC 200. Stopper 8 performs a closing operation to stop (fix) tray 9 that reaches the tracking area according to the command value.
Robot hand 210 of robot 30 is attached according to the process. The type of robot hand 210 includes, but is not limited to, a parallel hand, a multi-finger hand, a multi-finger joint hand, and the like, and for example, may include a type of picking and placing workpiece 232 by a suction type.
For example, robot 30 performs pick and place as the motion according to the command value from robot controller 310. Specifically, robot 30 picks workpiece 232 placed on tray 9 on conveyor 230 by robot hand 210, moves workpiece 232 to a table 55 at a predetermined position while keeping the pick, and places workpiece 232 on table 55. According to the command value from robot controller 310, robot hand 210 controls an opening and closing operation of a hand that performs the pick or place of workpiece 232.
Examples of the instrument in which the behavior is estimated by the simulation performed by system simulation device 1A include conveyor 230 that conveys workpiece 232 and the instrument such as robot 30 (robot 30 and robot hand 210) that handles workpiece 232, but the instrument in which the behavior is estimated is not limited thereto. Cable simulation device 1B calculates (estimates) the behavior of the cable based on the behavior of the instrument calculated (estimated) by the system simulation.
The control program may be designed by information processing device 100 using the result of the simulation. The control program designed on information processing device 100 is transmitted to PLC 200 through field network 22.
PLC 200 may include components of simulation device 1 included in information processing device 100.
<C. Entire Configuration of Control System>
PLC 200 includes an arithmetic unit 13 that executes main arithmetic processing, at least one IO unit 14, and a special unit 17. These units are configured to be able to exchange data with each other through a system bus 81, and power is supplied from a power supply unit 12. Information processing device 100 can be connected to arithmetic unit 13 through network 80.
IO unit 14 collects detected values 61, 71 and 237 and 239 from the IO devices including photoelectric sensor 6, proximity sensor 87 of stopper 8, encoder 236, 238, and the like. Proximity sensor 87 contactlessly detects that tray 9 approaches stopper 8 by a predetermined distance. For example, the detection value from each IO device is set (written) in a memory included in IO unit 14. Arithmetic unit 13 executes the arithmetic operation of the control program using the value collected by IO unit 14, and sets (writes) the value of the arithmetic result in the memory of IO unit 14. The peripheral instrument or the IO device operates by referring to the value of the memory of IO unit 14.
Robot controller 310, servomotor driver 531, 532, and remote IO terminal 5 may be connected to field network 22. Remote IO terminal 5 includes a communication coupler 52 performing processing regarding data transmission in field network 22 and at least one IO units 53. These units are configured to be able to exchange the data with each other through a remote IO terminal bus 51.
Servomotor drivers 531, 532 are connected to arithmetic unit 13 through field network 22, and drives servomotors 41, 42 according to an instruction value from arithmetic unit 13. Arithmetic unit 13 generates these command values based on detection values 237, 239 from encoders 236, 238.
Arithmetic unit 13 causes robot 30 to perform the pick and place by executing a predetermined control program with reference to the detection value from the IO device described above. Specifically, when detecting that workpiece 232 approaches a predetermined tracking area from detection value 61 of photoelectric sensor 6 and detection value 71 of proximity sensor 87, arithmetic unit 13 generates a control command 211 for arm 301 of the robot that performs the pick and place and a control command 222 for robot hand 210, and outputs the generated commands to robot 30 through cable 340 through robot controller 310.
<D. Hardware Configuration>
An example of a hardware configuration of simulation device 1 of the embodiment will be described below.
Information processing device 100 includes processor 102 that executes an operating system (OS) and various programs as described later, a main memory 104 that provides a work area storing data required for program execution in processor 102, an operation unit 106 such as a keyboard or a mouse that receives a user operation, an output unit 108 such as a display 109 that outputs processing results, various indicators, and a printer, a network interface 110 connected to various networks including network 80, an optical drive 112, a local communication interface 116 that communicates with an external device, and a storage 111 as main components. These components are communicably connected to one another through an internal bus 118 or the like.
Information processing device 100 reads various programs or data from a computer-readable storage medium 114 including an optical storage medium (for example, a digital versatile disc (DVD) or the like) that non-transiently stores a computer-readable program by an optical drive 112, and installs the various programs or data in a storage 111 or the like.
The various programs or the data executed by information processing device 100 may be installed through computer-readable storage medium 114, and installed by being downloaded from a server device (not illustrated) or the like on the network through network interface 110.
For example, storage 111 is configured of a hard disk drive (HDD) or a flash solid state drive (SSD), and stores the program executed by processor 102. Specifically, storage 111 stores a virtual time generation program 120, a relay program 121, a physical simulation program 122, a physical simulation parameter 124 regarding a physical simulation, a PLC simulation program 126, a PLC parameter 128 regarding a PLC simulation, a robot emulation program 130, a robot parameter 132 regarding robot emulation, an integration program 134, and a cable simulation program 137 as simulation programs implementing the simulation of the embodiment. Storage 111 further stores an image processing program 136 generating an image displaying the object disposed in the three-dimensional virtual space, an evaluation program 143, and a parameter setting program 145.
When executed, cable simulation program 137 implements cable simulator 165 including various modules of the partial cable optimization unit in
Evaluation program 143 evaluates the behavior based on the behavior of the object corresponding to cable 340 calculated by cable simulation program 137, and outputs evaluation data 144 indicating the evaluation result. Evaluation data 144 can be stored in storage 111. The evaluation data includes data evaluating the load applied to the model of the cable in the cable simulation.
For example, parameter setting program 145 stores a cable parameter 139 set based on the user operation content for information processing device 100 in storage 111. Cable parameter 139 includes a constraint parameter 149 including the threshold of the constraint, a robustness parameter 140 including a robustness range R described below, one or a plurality of candidate parameter sets 141, and the like. Cable parameter 139 further includes a bending constant, a damping coefficient, a stiffness value, and the like of cable 340.
Virtual time generation program 120 generates a virtual time for the simulation. Simulation device 1 executes the simulation in a period based on the virtual time.
Physical simulation program 122 calculates the behavior of the object corresponding to the instrument that operates in association with the movement of workpiece 232. For example, the instrument in which the behavior of the corresponding object is calculated by physical simulation program 122 includes photoelectric sensor 6, conveyor 230, tray 9, stopper 8, and robot hand 210 regarding the conveyance or movement of workpiece 232. Physical simulation parameter 124 including a parameter that defines the behavior of the object corresponding to such the instrument and a parameter that defines the weight, shape, or the like of workpiece 232 is given to physical simulation program 122. The value of physical simulation parameter 124 may be appropriately changed by the user operation, integration program 134, or the like.
The instrument regarding the conveyance or movement of workpiece 232 and computer aided design (CAD) data of workpiece 232 may be used as physical simulation parameter 124. The use of the CAD data can more accurately reproduce the behavior of the actual instrument using the object.
PLC simulation program 126 calculates the positions of the instrument and workpiece 232 for which the behavior of the corresponding object is calculated by physical simulation program 122. The calculated position is given to physical simulation program 122. PLC parameter 128 including a parameter required for calculating the position is given to PLC simulation program 126.
Robot emulation program 130 functions as a simulator that reproduces the behavior of robot 30 using the object. Robot emulation program 130 reproduces a predetermined motion handling workpiece 232 by robot 30 based on the result (the behavior of the object) calculated by physical simulation program 122. Robot parameter 132 including the parameter required for reproducing the behavior of robot 30 using the corresponding object is given to robot emulation program 130.
Relay program 121 provides a relay function of exchanging the data between physical simulation program 122 and robot emulation program 130. Relay program 121 is not limited, but for example, the relay function is described by a script command.
Integration program 134 executes processing for causing physical simulation program 122, PLC simulation program 126, robot emulation program 130, and relay program 121 to cooperate with one other. Specifically, integration program 134 typically generates and updates virtual space information 105 that describes the state of the object in the three-dimensional virtual space on main memory 104. Physical simulation program 122, PLC simulation program 126, and robot emulation program 130 execute the processing of each simulation by referring to (reading) virtual space information 105, and reflect required information among the execution results in virtual space information 105. The behavior and processing of the instrument in control system 2 including the instrument that conveys workpiece 232 and robot 30 that moves workpiece 232 by the predetermined motion are reproduced by the function provided by integration program 134.
Three-dimensional (3D) visualization data 135 displayed on display 109 is given to image processing program 136. 3D visualization data 135 includes behavior data 252 and image data 253. Image data 253 includes instrument image data 2530 drawing the object corresponding to the simulated instrument and cable image data 2531 drawing the object corresponding to cable 340. Cable image data 2531 includes image data corresponding to the object of a rigid body 304 (described later).
Behavior data 252 includes instrument behavior data 2520 and cable behavior data 2521 including a three-dimensional coordinate P(x, y, z) that are the position calculated using a predetermined function at the position of each instrument of virtual space information 105 and time-series data thereof. Cable behavior data 2521 indicates the behavior of the object disposed in the three-dimensional virtual space corresponding to cable 340, which is calculated by cable simulator 165 based on the data of instrument behavior data 2520.
Using instrument image data 2530 and instrument behavior data 2520, image processing program 136 generates the image data stereoscopically drawing the behavior of each object of the target in workpiece 232, the instrument and robot 30 regarding the conveyance of workpiece 232, and robot hand 210 attached to robot 30 in the three-dimensional virtual space, and outputs the image data to display 109. In addition, image processing program 136 generates the image data three-dimensionally drawing the behavior of the object corresponding to cable 340 in the three-dimensional virtual space using cable image data 2531 and cable behavior data 2521, and outputs the image data to display 109.
Thus, the object is displayed on display 109 according to the behavior calculated by the simulation, the behavior of the instrument of control system 2 is reproduced, and the behavior of cable 340 linked with the behavior of the instrument is reproduced. Image data 253 may include computer-aided design (CAD) data or the like.
Although
Although
<E. Functional Configuration>
An example of a functional configuration of simulation device 1 of the embodiment will be described below.
(E1. Configuration of System Simulation Device 1A)
Referring to
Virtual space information management module 150 is implemented by executing integration program 134 (
PLC simulator 152 is implemented by executing PLC simulation program 126 (
PLC simulator 152 is a program estimating the behavior of the instrument regarding workpiece 232, and corresponds to the simulation program having the plurality of instructions included in the PLC program. The plurality of instructions may include an instruction group controlling the behavior of the instrument regarding the conveyance included in the PLC program. For example, the PLC program is described in a program language described in a cyclic execution language (for example, a ladder language).
Each time these instructions of PLC simulator 152 are executed based on the data of virtual space information 105, for example, command values controlling servomotors 41, 42 of conveyor 230 are generated and stored in virtual space information 105.
Relay module 158 outputs the measurement result of workpiece 232 by the measurement processing using image measurement parameter 129 of workpiece 232 to robot emulator 160. Robot emulator 160 reproduces the behavior of robot 30 that conveys the workpiece disposed in the virtual space according to the measurement result from relay module 158 based on robot parameter 132. The information about the behavior of robot 30 calculated by robot emulator 160 is reflected in virtual space information 105. Robot emulator 160 is implemented by executing robot emulation program 130. Robot emulator 160 outputs instrument behavior data 2520 indicating the behavior of robot 30 that moves workpiece 232 disposed in the three-dimensional virtual space. Robot emulator 160 performs the simulation by regarding arm 301 of robot 30 and robot hand 210 attached to the distal end thereof as the integral rigid body.
Specifically, robot emulation program 130 includes an instruction group included in the program of robot controller 310. The instruction group includes commands of the robot program including an instruction code causing robot 30 to operate workpiece 232. These commands include instructions calculating a target locus of robot 30 based on the output data of PLC simulator 152 of virtual space information 105 and the like and calculating a command value indicating the behavior of each axis based on the calculated locus.
As described above, when executing the instruction, robot emulator 160 generates the command value for each axis in order to control the behavior of robot 30, and outputs the generated command value to virtual space information management module 150. Virtual space information management module 150 manages (stores) the command value from the robot emulator as virtual space information 105.
Workpiece behavior simulator 155 calculates the behavior of the object of one or a plurality of workpieces 232 disposed in the three-dimensional virtual space. Specifically, workpiece behavior simulator 155 is implemented by executing physical simulation program 122 (
Physical simulator 156 is implemented by executing physical simulation program 122 (
Physical simulator 156 calculates the behavior such as the position and posture of these objects according to a predetermined physical arithmetic operation. Physical simulator 156 sets a mass parameter 127 of the object to zero among physical simulation parameters 124 used for the physical arithmetic operation and performs the arithmetic operation.
Physical simulator 156 stores the three-dimensional coordinates P(x, y, z) of robot hand 210 calculated by the physical arithmetic operation as instrument behavior data 2520. Physical simulator 156 is executed for each time step ti (i=1, 2, 3, . . . ), so that instrument behavior data 2520 includes time-series three-dimensional coordinates P(x, y, z) corresponding to robot hand 210.
Workpiece tracking module 162 is implemented by executing robot emulation program 130. Workpiece tracking module 162 tracks workpiece 232 picked and placed by robot 30 in the three-dimensional virtual space based on the behavior information about robot 30 from robot emulator 160. The position information (workpiece position) about workpiece 232 tracked by workpiece tracking module 162 is reflected in virtual space information 105.
(E2. Configuration of Cable Simulation Device 1B)
Referring to
Cable simulator 165 calculates the behavior of the object disposed in the three-dimensional virtual space corresponding to cable 340 using cable parameter 139 based on the data of instrument behavior data 2520 corresponding to a time step ti by being executed for each time step ti, and stores the calculation result as cable behavior data 2521.
Cable simulator 165 acquires cable behavior data 2521 by calculating the behavior of the object corresponding to cable 340 for each time step ti. Acquired cable behavior data 2521 indicates the time-series behavior of cable 340 in the three-dimensional virtual space.
3D visualizer 164 corresponds to an image generation unit that generates an image obtained by visualizing the three-dimensional virtual space. 3D visualizer 164 calculates three-dimensional coordinates P(x, y, z) of the object in the three-dimensional virtual space corresponding to each of workpiece 232, robot 30, robot hand 210, and peripheral instrument based on the command value for each time step ti of virtual space information 105. Instrument behavior data 2520 including time-series three-dimensional coordinates P(x, y, z) is calculated. For example, the peripheral instrument is a peripheral instrument of robot 30 (robot arm 301), and includes an instrument regarding the conveyance of workpiece 232.
3D visualizer 164 generates the image data that visualizes the behavior of the instrument in the three-dimensional virtual space based on instrument behavior data 2520 and instrument image data 2530, and generates the image data that visualizes the behavior of the cable in the three-dimensional virtual space based on cable behavior data 2521 and cable image data 2531. These pieces of image data are output to display 109. Thus, the image indicating the behavior of the instrument calculated by the system simulation and the image indicating the behavior of cable 340 calculated by the cable simulation are displayed on display 109.
Period generation module 154 is implemented by executing virtual time generation program 120. Period generation module 154 outputs a signal ST synchronized with an output of a timer (not illustrated) included in processor 102 to other units based on the output of the timer. Each unit executes the processing or the program in synchronization with predetermined time step ti that is the period in which signal ST is output from period generation module 154. Thus, each unit in
When the functions in
In the embodiment, simulation device 1 in
In
<F. Three-Dimensional Virtual Space and Instrument Behavior Data>
With reference to
As described above, robot 30 and conveyor 230 include the movable unit movable by the plurality of drive shafts. Each of these drive shafts is driven by the servomotor. Specifically, robot 30 includes a plurality of arms driven by the rotation of the robot servomotor (servomotors 1301 to 1304). The robot servomotor rotates to drive each corresponding arm. Robot controller 310 controls the drive of the robot servomotor, so that each arm moves three-dimensionally. The behavior of robot 30 is implemented by the drive of each arm. Similarly, in conveyor 230, servomotors 41, 42 rotate to move conveyor 230 and tray 9 on the conveyance surface. The movement amount (speed, direction, distance, and the like of movement) is determined by the rotation amount (direction and angle of rotation) of servomotors 41, 42. The behavior of the instruments such as conveyor 230 and tray 9 is implemented by the driving of servomotors 41, 42.
In the embodiment, virtual axes are associated with arm 301 of robot 30, and the position of robot 30 is determined from the position of each axis. PLC 200 controls robot 30 according to the target position converted into the time series of each axis, so that the speed and the track of the movement of each arm 301 change to be the speed and the track according to the target.
For example the target position of robot 30 is previously stored in PLC 200. Robot controller 310 receives the target position from PLC 200, determines the rotation amount of each robot servomotor based on the received target position, and outputs the instruction value designating the determined rotation amount to each robot servomotor.
System simulation device 1A can also calculate the behavior of the object corresponding to workpiece 232 and conveyor 230 that conveys workpiece 232 in the three-dimensional virtual space similarly to robot 30, and output the calculation result as instrument behavior data 2520.
Furthermore, in control system 2, the instruments are time-synchronized with each other. Specifically, the plurality of instruments connected to field network 22, namely, PLC 100, robot controller 310, servomotor driver 531, 532, and robot hand 210 include timers 90, 91, 92, 93, 94 time-synchronized with each other, respectively, and the instruments operate based on these timers, so that transmission and reception timing of the data including control commands are synchronized with each other.
(F1. Instrument Behavior Data (Joint Angle Time-Series Data T(t)))
An example of a process of calculating the position and posture of robot 30 in the three-dimensional virtual space of the embodiment will be described. In the embodiment, an absolute coordinate system in which each unit such as robot 30 and PLC 200 commonly includes a coordinate system in the three-dimensional virtual space will be exemplified. When the position in the absolute coordinate system is calculated, in the embodiment, the rotation amount of servomotor 1301 is indicated by αA, the rotation amount of servomotor 1302 is indicated by αB, the rotation amount of servomotor 1303 is indicated by αC, and the rotation amount of servomotor 1304 is indicated by αD. Each servomotor rotation amount (αA, αB, αC, αD) can be converted into the position (three-dimensional coordinates P(x, y, z)) of the joint in the three-dimensional virtual space by performing the arithmetic operation using a predetermined function with respect to each servomotor rotation amount (αA, αB, αC, αD). In system simulation device 1A of the embodiment, instrument behavior generation module 151 calculates the change in the time series of the behavior (the position in the three-dimensional virtual space) of the first target disposed in the three-dimensional virtual space corresponding to the instrument (more particularly, arm 301 of robot 30), and outputs the joint angle time-series data T(t) as instrument behavior data 2520 that is the calculation result.
(F2. Method for Generating Joint Angle Time-Series Data T(t))
Joint angle time-series data T(t) may be generated using computer-aided design CAD) regardless of the time-series change in the rotation amount of the servo motor described above. More specifically, in the case where instrument behavior generation module 151 includes a CAD module, when the user designates a predetermined motion (behavior) to be taken by the arm of robot 30, motion planning is executed for the designated motion by the CAD module, and joint angle time-series data T(t) is acquired as the calculation result of the motion planning. In the following, as the predetermined motion, pick-and-place often used as an industrial robot application will be exemplified. However, the type of motion is not limited to the pick-and-place.
<G. Model of Simulation Target>
In the model, absolute coordinate system ΣL0 having the root of link L0 as the origin and a coordinate system ΣLn rotating together with link Ln at the root (the end on the origin side of link Ln) of link Ln are introduced. In the model, coordinate system ΣLn is represented by a nonlinear function of a joint angle θ(t)=[θ1(t), θ2(t), . . . , θN-1(t)]T at time t. In
(G1. Model of Partial Cable)
[Mathematical Formula 1]
In Equation (1), the force (Fx, Fy, Fz) and the torque (τφ, τθ, τψ) are illustrated. A first term on the right side is a proportional term of the hook, κx, κy, κz, κφ, κθ, κψ represents the spring coefficient, {tilde over (x)}, {tilde over (y)}, {tilde over (z)}, {tilde over (φ)}, {tilde over (θ)}, {tilde over (ψ)} represents the initial relative position of the adjacent segment, represents the current relative position (x, y, z) and posture (φ, θ, ψ). The second term is a damping term, ζx, ζy, ζz, ζφ, ζθ, ζψ represents a damping coefficient, and a dot operator at the upper part of the relative position and posture represents a first derivative with respect to time.
The model of partial cable Cn in
<H. Calculation of Specific Model and Behavior of Physical Simulation>
With reference to
(H1. Specific Model of Physical Simulation of Partial Cable)
Cable simulator 165 of the embodiment includes the physical simulator that executes the physical simulation. The object (second target) corresponding to the partial cable that is the target of the physical simulation includes the rigid link modeled by connecting a plurality of rigid bodies 304 by joining rigid bodies 304 that are adjacent segments with joint 305. Specifically, in the simulation, rigid body 304 is treated as the segment having a predetermined size and shape, and in the rigid link, rigid bodies 304 are connected in a line by joint 305. Physical simulation parameters 124 include parameters such as the size and shape of the segment.
For example, rigid body 304 is a non-deformable object having a columnar shape. In the physical simulation, focusing on the center of rigid body 304, rigid body 304 is defined as a mass point having the current position and the immediately preceding position of the center. For example, joint 305 corresponds to a joint such as a spring or a damper, and joint 305 corresponds to the constraint condition described above that is a constraint on the translation and rotation of adjacent rigid bodies 304 in the x, y, and z axial directions in the model.
In the cable simulation, partial cable behavior calculation module 166 includes the physical simulator. The physical simulator calculates the behavior (cable behavior data 2521) of the rigid link model in the three-dimensional virtual space by performing the arithmetic operation of a constraint equation including the constraint condition representing the rigid link model in
(H2. Position Update According to Constraint Condition)
Partial cable behavior calculation module 166 includes the physical simulator. More specifically, in the cable simulation, the position of rigid body 304 is updated (corrected) according to the position based dynamics (PBD) of the position base.
Specifically, in the cable simulation, the behavior of each rigid body 304 is calculated for each time step ti. As a result of the simulation, when adjacent rigid bodies 304 collide with each other, sometimes one of colliding rigid bodies 304 enters (sink into) the other (a part (A) in
In the part (A) in
When the intrusion is detected in the part (A) in
When the position of rigid body 304 is changed by cable simulator 165, namely, when position X (position after correction: Xcorrect) of rigid body 304 is calculated, a speed v is changed (a part (C) in
Although the position update of the x-coordinate of rigid body 304 is described above, in the cable simulation, the y-coordinate position and the z-coordinate position are also updated similarly to the update of the x-coordinate position.
In this manner, the behavior of the rigid link is calculated by repeatedly performing the operation according to the equation (Equation 147 and Equation (1)) representing the relationship between the positions and postures of the adjacent rigid bodies in the rigid link modeling partial cable Cn and the constraint condition imposed on the relationship between the positions and postures of the rigid bodies, which is the condition corresponding to joint 305, based on joint angle time-series data T(t). In each time step ti of the simulation, the behavior of the rigid link can be calculated for the rigid link in the state where rigid body 304 does not invade (in the state where the sinking is eliminated).
In the cable simulation of the embodiment, a parameter representing hardness of cable 340 can be included as the parameter regarding the constraint condition of Equation (1) shifting the behavior of partial cable Cn to the stable state. For example, the hardness parameters include parameters stiffness and damping specific to the material of cable 340. The parameter stiffness indicates uneasiness of deformation of rigid body 304, and for example, is equivalent to Young's modulus. In addition, the parameter damping indicates damping property with respect to vibration of rigid body 304.
<I. Partial Cable Optimization>
Partial cable optimization processing of the embodiment will be described. Cable simulator 165 optimizes the partial cable path for partial cable Cn by partial cable behavior calculation module 166. The optimization of the partial cable path corresponds to the optimization of the installation parameter set of partial cable Cn. The attachment parameter set of partial cable Cn includes three parameters of the number of segments Sn configuring partial cable Cn, position and posture Pn of guide Gn, and position and posture P(n+1) of guide G(n+1).
Cable simulator 165 performs optimization of the partial cable path using all types of candidate parameter sets including parameter candidates. More specifically, a cable shape model is produced based on the physical parameters, and a model of the cable initial shape corresponding to the robot arm shape is generated from the cable shape model based on one candidate parameter set and initial joint angle data T(0) corresponding to t=0 of joint angle time-series data T(t). Subsequently, cable simulator 165 calculates cable behavior data 2521 indicating the cable shape corresponding to joint angle time series T(t) by the physical simulation with the lapse of time t based on the generated model. Cable simulator 165 determines whether the candidate parameter set used for the simulation satisfies the following constraints from the calculated time-series cable shape. The candidate parameter set determined to satisfy the constraint is held as the optimal parameter set of partial cable Cn.
(I1. Calculation of Load)
Load calculation module 167 calculates load information 142 indicating the load applied to the rigid link (second target) of partial cable Cn based on cable behavior data 2521. In the embodiment, the types of loads that can be calculated include bending, elongation, twisting, impact, and repulsive force, but are not limited thereto.
Load calculation module 167 calculates the load applied to rigid body 304, namely, each position 1411 according to a predetermined arithmetic operation based on the behavior (position and posture) of each rigid body 304. For example, the twisting and bending of each rigid body 304 are calculated from the behavior of rigid body 304 and adjacent rigid body 304, the elongation is calculated from the distance between adjacent rigid bodies 304 (the larger the distance, the more pulled the distance), and the repulsive force is calculated from the distance that the rigid body invades during collision (the larger the distance, the larger the repulsive force). The impact calculated by load calculation module 167 may include the collision between rigid body 304 and another object different from rigid body 304. The another object include objects such as peripheral instrument, robots 30 with arms 301, and workpieces 232. Load calculation module 167 detects the collision between rigid body 304 and another object. More specifically, load calculation module 167 detects the collision based on the relative positional relationship in the three-dimensional virtual space between the behavior (position and posture) of rigid body 304 of the cable indicated by cable behavior data 2521 and the behavior (position and posture) of another object indicated by instrument behavior data 2520. For example, load calculation module 167 detects the collision between rigid body 304 and the object of the arm 301 based on the relative positional relationship in the three-dimensional virtual space between the position and posture of rigid body 304 at time step ti indicated by cable behavior data 2521 and the position and posture of the arm indicated by joint angle time-series data T(t).
(I2. Constraints)
For example, the above constraint includes the following conditions indicating that the magnitude of the load applied to the rigid link of the partial cable Cn does not exceed the threshold. Cable parameter 139 includes these thresholds as parameters.
Condition 1. The impact that the cable receives from contact with the robot arm or the peripheral instrument is less than or equal to the threshold (impulse_th).
Condition 2. The elongation of the distance with respect to the initial distance between the segments of the cable is less than or equal to the threshold (stretch_th).
Condition 3. The curvature radius of the cable does not fall below the threshold (curvature_th) determined by the material of the cable.
In the optimization of the parameter set of partial cable Cn, first, a set D1,n of candidate parameter sets generated from all combinations of the installation parameter candidates is formulated.
[Mathematical Formula 2]
The set D1,n of parameter set is formulated by Equations (2) and (3). First, a candidate set of the number of segments constituting the partial cable connecting a link Ln and a link Ln+1 is expressed as {Sn,i
D
0,n={(Sn,i
Set D1,n of the candidate parameter sets satisfying the condition 1, the condition 2, and the condition 3 described above is expressed by Equation (3).
[Mathematical Formula 3]
At this point,
represents the impact that the partial cable having the number of segments Sn,i
represent the elongation or the radius of curvature, respectively.
At this point, the set of parameter sets of set D1,n is not set as the set of the optimal parameter sets of partial cable Cn as it is, but in the embodiment, the parameter set of each partial cable Cn is further optimized based on the fact of robustness.
This is because, in the case where the cable is attached according to the parameter set of the parameter set of set D1,n, there is a possibility that the parameter set that may cause a failure during operation of robot 30 is included in set D1,n due to a modeling error of the cable, an error of the physical simulation, and an attachment error during the attaching of the cable. In particular, the cable wiring has a large variation in the attachment error due to a user's skill level, and there may be the case where the cable is not attached just as the optimal parameter set of sets D1,n.
In order to prevent the generation of the above case, cable simulator 165 applies the robustness condition to set D1,n to determine the optimal parameter set for partial cable Cn. In the embodiment, the robustness indicates whether the parameter set to be optimized is susceptible to the above error. The parameter set that is less sensitive to the error has the robustness, but the parameter set that is sensitive to the error does not have the robustness.
In the embodiment, attention is paid to the robustness of the number of segments Sn of partial cable Cn. More specifically, even when the number of segments Sn increases or decreases within a certain range ±R, it is imposed that the constraint of Equation (3) described above is satisfied. That is, among sets D1,n, even when the number of segments Sn increases or decreases within the certain range ±R, a subset of the parameter set satisfying the conditions 1 to 3 is set D2,n of the optimal parameter sets having the robustness. Set D2,n of the optimal parameter sets is expressed by the following Equation (4). Cable parameter 139 includes a parameter of range R.
[Mathematical formula 4]
D
2,n={(Sn,i
Cable simulator 165 performs the above processing (simulation) for each partial cable Cn. Thus, set D1,n and set D2,n of the optimal parameter sets are calculated for each partial cable Cn.
<J. Entire Cable Optimization>
Cable simulator 165 derives the parameter set such that the number of segments of the entire cable 340 is minimized such that the cable length of entire cable 340 is minimized, namely, the number of segments of the entire cable 340 is minimized, based on set D2,n of the optimal parameter sets of each partial cable Cn obtained by the partial cable optimization. Thus, the optimization parameter set for attaching entire cable 340 is determined.
More specifically, cable simulator 165 derives at least one parameter set satisfying the sharing condition among the parameter sets of set D2,n of adjacent partial cables Cn. In the embodiment, the sharing condition includes a condition that adjacent partial cables Cn are relayed between both partial cables, namely, position and posture Pn(P(n+1)) of guide Gn(G(n+1)) shared by both partial cables is common. Cable simulator 165 extracts at least one parameter set satisfying this sharing condition from set D2,n of the optimal parameter sets of each partial cable Cn, and determines a parameter set D3,n of entire cable 340 including the at least one parameter set extracted for each partial cable Cn.
More specifically, parameter decision module 170 collates the parameter set of each partial cable set D2,n for each set of adjacent (adjacent) partial cables Cn and C(n+1). As a result of the collation, parameter decision module 170 extracts (determines) at least one optimal parameter set from set D2,n of partial cables Cn and set D2,n of partial cables C(n+1) such that position and posture Pn of guide Gn relaying between both the partial cables of the set satisfies the condition of being shared (common) by both the partial cables. The above-described relaying guide indicates guide G2, for example, in the pair of adjacent partial cables C1 and C2 in
The at least one optimal parameter set is extracted by parameter decision module 170 from set D2,n of partial cables Cn based on the sharing condition according to the procedure described above, and extracted set D3 including the optimum parameters of partial cables Cn is expressed by Equation (5).
[Mathematical formula 5]
D
3={(S1,i
The at least one optimal parameter set of each partial cable Cn indicated by set D3 is the parameter set that satisfies the constraint (impact, elongation, radius of curvature) and a sharing condition, and is also referred to as an implementable parameter set.
Parameter decision module 170 finally determines, for each partial cable Cn, the parameter set that minimizes the number of segments constituting entire cable 340, namely, minimizes the total value of the number of segments Sn of partial cables Cn, among the at least one parameter set of set D3, and sets the determined parameter set of each partial cable Cn as the optimal parameter set d* in Equation (6).
[Mathematical Formula 6]
When a plurality of optimal parameter sets d* in which the sum of the number of segments constituting entire cable 340 is matched are calculated, one optimal parameter set d* is selected from the plurality of optimal parameter sets d* by parameter decision module 170 based on the impact, the elongation percentage between the segments, and the bending radius received by the segments of all partial cables Cn.
<K. Schematic Processing Flow of Simulation>
Referring to
The user operates operation unit 106 and inputs the instruction to execute the system simulation and store instrument behavior data 2520 to information processing device 100 (step S85).
Processor 102 activates system simulation device 1A (step S87), executes the system simulation, stores (holds) instrument behavior data 2520 that is the execution result of in storage 111 (step S88), and outputs the notification indicating that the storage of instrument behavior data 2520 is completed to, for example, display 109 (step S89).
The user operates operation unit 106 to input cable parameter 139 to information processing device 100 (step S91). Parameter setting program 145 executed by processor 102 stores cable parameter 139 received from operation unit 106 in storage 111.
The user operates operation unit 106 and inputs the instruction to start the execution of the cable simulation to information processing device 100 (step S93). Processor 102 activates cable simulator 165 according to the instruction to start the execution of the cable simulation.
When activated, cable simulator 165 performs the cable simulation (step S100). More specifically, the simulation is repeated (loop processing) while changing time t for each partial cable for the partial cable optimization, and the entire cable optimization processing is performed based on the optimal parameter set calculated for each partial cable.
Evaluation module 177 executes evaluation processing of the cable simulation result (step S130). Evaluation module 177 outputs information about evaluation data 144 that is the evaluation result (step S140). For example, the image based on evaluation data 144 is displayed on display 109.
(K1. Schematic Processing Flow of Cable Simulation)
Cable simulator 165 performs the partial cable optimization processing for each of the n partial cables (step S110), calculates set D2,n(n=1, 2, 3 . . . ) of the parameter sets including at least one optimal parameter set for each partial cable Cn, and calculates optimized parameter set d* of entire cable 340 based on calculated set D2,n of the optimal parameter sets of each partial cable Cn (step S120). Optimal parameter set d* corresponds to an implementable parameter set that enables the attachment of the cable to robot 30.
(K2. Processing Flow of Partial Cable Optimization)
First, the first candidate parameter set of cable parameter 139 is set as the simulation target parameter set, and joint angle time-series data T(t) is set (step S111). Partial cable behavior calculation module 166 generates the model of the initial shape of partial cable Cn using the target parameter set, the size of the segment of physical simulation parameter 124, the shape model of the robot arm, and the like (step S112). For example, the model of partial cable Cn is indicated by the model of the rigid link in
The behavior (shape change) of the cable accompanying the behavior of arm 301 of robot 30 is calculated from the model of the initial shape of partial cable Cn (step S113). That is, partial cable behavior calculation module 166 repeatedly solves the simultaneous equations (Equation 147) for each time step ti based on joint angle time-series data T(t), thereby calculating the value of variable Pn corresponding to the position and posture of each rigid body 304 for each time step ti, namely, the behavior.
It is determined whether the behavior of the partial cable satisfies the constraint based on position and posture Pn that changes in time series calculated for the partial cable (step S114). More specifically, load calculation module 167 calculates the load applied to the rigid link that is the model of the partial cable, and constraint determination module 168 determines whether the behavior of the partial cable satisfies the constraint using the threshold of the constraint of cable parameter 139 based on the load (step S115).
When it is determined that the constraint is not satisfied (NO in step S115), it is determined whether the optimization of the parameter set of the partial cable is completed, namely, whether the partial cable optimization processing is performed using all the candidate parameter sets of cable parameter 139 (step S19). When it is determined that the optimization of the parameter set of the partial cable is ended (YES in step S119), the processing in
On the other hand, when it is determined that the constraint is satisfied (YES in step S115), robustness determination module 169 determines whether the behavior of the partial cable satisfies the condition of robustness using range R of cable parameters 139 (step S116).
When it is determined that the condition of robustness is not satisfied (NO in step S117), the processing proceeds to step S119. However, when it is determined that the condition of robustness is satisfied (YES in step S117), cable simulator 165 registers the target parameter set as the optimal parameter set of partial cable Cn (step S118). That is, cable simulator 165 includes the target parameter set in the set D2,n of partial cables Cn.
When the processing in
(K3. Processing Flow of Entire Cable Optimization)
Parameter decision module 170 compares the value of position and posture Pn of each parameter set between set D2,n of partial cables Cn and set D2,n of partial cables C(n+1) adjacent to partial cable Cn, and determines the parameter set having position and posture Pn satisfying the adjacent condition based on the comparison result. At least one combination of the parameter sets satisfying the adjacent condition determined in set D2,n of partial cables Cn is acquired.
Parameter decision module 170 sets a first one of the one combination as the target combination (step S121), calculates the sum of the number of segments Sn of the partial cables included in the target combination (step S122), and determines whether the entire cable length indicated by the calculated sum is the shortest among the entire cable lengths of all combinations (step S123).
When it is not determined that the calculated total value of the number of segments Sn indicates the shortest cable length (NO in step S124), it is determined whether the processing in
On the other hand, when it is determined that the total value of the number of segments Sn calculated for the target combination indicates the shortest cable length (YES in step S124), the parameter set (number of segments Sn of each partial cable, position and posture Pn of each guide) indicated by the target combination is determined as optimal parameter set d* of entire cable 340, namely, the mountable parameter set (step S125).
<L. Specific Example of Cable Simulation>
A specific example of the cable simulation will be described in the case where the cable is attached to the arm of a six-axis vertical articulated robot. Here, the case where the cable of a product number AWG28x5PIFVV-SB manufactured by Fujikura Co., Ltd. is attached to the arm of the robot of a model number Viper850 manufactured by OMRON Corporation will be described.
First, the disposition of the guide and the cable will be described, and then three pieces of processing of joint angle time-series generation, partial cable optimization, and entire cable optimization will be described according to the processing procedure in
(L1. Disposition Example of Guide and Cable)
Hereinafter, the cable path optimization will be described for partial cables C3 and C4 that connect guide G3 and guide G6 through guide G4 in
(L2. Specific Example of Joint Angle Time-Series Generation)
With reference to
(L3. Specific Example of Partial Cable Optimization)
In the partial cable optimization, for example, for partial cables C3 and C4, the optimal parameter set including the numbers of segments S3 and S4 and positions and postures P3 and P4 of guides G3 and G4 is acquired using joint angle time-series data T(t). When acquiring the optimal parameter set, cable simulator 165 determines a search range of the parameter set.
In the embodiment, for the search range of the number of segments S3, the minimum value is set based on an inter-guide distance, and the maximum value is set to about several times the inter-guide distance in order to avoid the contact between the cable and the robot arm. In the case where the search range of the number of segments S3 is set in this manner, a range greater than or equal to 100 mm and less than or equal to 300 mm for cable C3 and a range than or equal to 200 mm and less than or equal to 440 mm for cable C4 are searched as the cable length. In the embodiment, because a unit segment length is set to 5 mm and a sampling interval of the number of segments Sn is set to 4, the candidates for the numbers of segments S3 and S4 are (S3,1, S3,2, . . . , S3,11)=(20, 24, . . . , 60) and (S4,1, S4,2, . . . , S4,13)=(40, 44, . . . , 88), respectively. The number of candidates of the optimal parameter of each of the number of segments S3 and S4 is I3=11 and I4=13.
As described above, the position (x, y, z) and the posture (φ, θ, ψ) of Pn are based on the instrument installation position in coordinate system ΣLn of link Ln. A φ direction of the posture is a cable twist direction. However, when the cable is attached to the robot while previously twisted, the life of the cable is shortened, so that y is fixed to zero in the embodiment. In the embodiment, a position candidate set that is a set of optimal parameters of position P3 is set as {(x, y, z)| x=0, y=−40, 0, 40, z=0, 20}. In addition, from the reason described above, J3=6 is set to be fixed at the posture (φ, θ, ψ)=(0, 0, 0) at the position P3. On the other hand, {(x, y, z)|x=0, 50, y=−50, 0, 50, z=0, 20} is set to the position candidate set that is the set of optimum parameters of position P4. The posture candidate set that is the set of the optimum parameters of the position P4 is set to {(φ, θ, ψ)| φ=0, 0=0, 45, ψ=−90, 0, 90}. Accordingly, J4=72. As described above, because position and posture P6 of guide G6 is fixed, J6=1. At this point, the unit of the position is mm, and the unit of the posture is degree. There are 4752 combinations of the optimum parameters for cable C3 and 936 combinations for cable C4. In the simulation, the unit segment length is represented by a column and a void, the length of the column is set to 3.5 mm and the length of the void is set to 1.5 mm, and the diameter of the column representing the segment is set to 8 mm.
Cable simulator 165 calculates the optimal parameter set for each of partial cables C3 and C4. Here, as the constraints, zero is set to the impact threshold (impulse_th) of the cable, 102% is set to the threshold (stretch_th) of the elongation rate between the segments, and 48 mm is set to the threshold (curvature_th) of the curvature radius. For example, the threshold of the curvature radius is set based on six times the diameter that is a guarantee criterion of the cable. In the embodiment, for cable C3, the physical simulation is performed using each of all the parameter sets included in set D0,3 of the candidate parameter sets, and set D1,3 of the candidate parameter sets that satisfy the three conditions of the conditions 1 to 3 as the constraint is calculated. For this set D1,3, set D2,3 of the optimal parameter sets of partial cable C3, which is the set of the candidate parameter sets in which the number of segments with respect to the cable length satisfies the robustness condition under certain range R (for example, R=8 mm), is calculated. For partial cable C4, the physical simulation is performed using each of all the parameter sets included in set D0,4 of the candidate parameter sets according to the procedure similar to that for partial cable C3, set D1,4 of the candidate parameter sets satisfying the constraint is calculated, and set D2,4 of the optimal parameter sets satisfying the robustness condition is calculated from sets D1,4.
(L4. Specific Example of Entire Cable Optimization)
Based on the result of the parameter set optimization of the partial cable, the parameter set optimization of entire cable 340 is performed. More specifically, cable simulator 165 calculates set D3 of the implementable parameter sets satisfying the adjacency condition between partial cable C3 and partial cable C4 based on set D2,3 and set D2,4 of the optimal parameter sets of partial cables C3 and C4, and calculates optimal parameter set d* of entire cable 340 from calculated set D3.
In
The information illustrated in
<M. Setting of Parameter Set and UI Screen>
The candidate parameter set including the number of segments and the position and posture of the guide for the cable simulation described above can be set by the user. Parameter setting program 145 provides a UI tool that assists the user for parameter set setting.
By the UI tool, the UI screen in
The user can set the candidate parameter set as cable parameter 139 by operating the UI screen on the left side in
Furthermore, on the UI screen, the user can set a parameter 194 regarding the constraint and a parameter 195 specifying range R of the robustness. Parameter 194 includes the threshold (for example, 5) of the curvature radius and the display color of the 3D image in the case where the load calculated by the simulation exceeds each threshold value of the constraint. When the cable simulation is performed according to the parameter set on the UI screen, and for example, when it is determined that the load (elongation, radius of curvature and impact) of a certain partial cable exceeds a predetermined threshold, the display color of the object image corresponding to the partial cable of the 3D image on the right side of the screen in
<N. Method for Calculating Spring Constant>
In the embodiment, for example, the spring constant of Equation (1) is estimated using Scan2Flex proposed by Hermansson et al., but the estimation method is not limited to the method using Scan2Flex. With reference to
With reference to
An example of the relationship between torsion moment M and angle of twist φ applied to the cable by the robot arm is illustrated in the graph of
In the embodiment, the damping coefficient is determined by trial and error while checking convergence of calculation.
<O. Program>
Processor 102 of information processing device 100 implements system simulation device 1A or cable simulation device 1B by executing the simulation program. Storage 111 can store programs, data, and the like in order to implement these simulation devices.
The storage medium of storage 111 is not limited to the HDD or the SSD.
In addition, the program or data regarding the simulation may be downloaded to storage 111 through various communication lines. Alternatively, the program or data may be downloaded to storage 111 through storage medium 114. Storage medium 114 is a medium that accumulates information such as the program by electrical, magnetic, optical, mechanical, or chemical action such that a computer, other devices, a machine, or the like can read the information such as the recorded program. Information processing device 100 may acquire the program or data regarding the simulation from storage medium 114.
The program can be executed by at least one processor circuit such as a CPU, or a combination of the processor and a circuit such as an application specific integrated circuit (ASIC) or a field-programmable gate array (FPGA).
<P. Appendix>
The above embodiment includes the following technical ideas.
[Configuration 1]
A simulation device (1) that calculates a behavior of a cable (340) attached to an instrument (30) through a plurality of guides (Gn), the simulation device including:
[Configuration 2]
The simulation device described in configuration 1, in which the constraint includes a condition that the magnitude of the load applied to the second target corresponding to the partial cable does not exceed a threshold.
[Configuration 3]
The simulation device described in configuration 1, in which the constraint includes a condition that the magnitude of the load applied to the second target corresponding to the partial cable does not exceed a threshold when the length of the partial cable changes within a predetermined range (R).
[Configuration 4]
The simulation device described in any one of configurations 1 to 3, in which the condition regarding the attachment of the entire cable includes a condition that a position and a posture of a guide shared between the adjacent partial cables are common.
[Configuration 5]
The simulation device described in any one of configurations 1 to 4, in which the behavior of the first target includes a behavior calculated for each predetermined time step (ti), and
[Configuration 6]
The simulation device described in any one of configurations 1 to 5, in which the partial cable behavior calculation unit includes a physical simulator.
[Configuration 7]
The simulation device described in configuration 6, in which the second target includes a rigid link modeled by joining adjacent rigid bodies (304) with a joint (305) in a row, and
[Configuration 8]
The simulation device described in configuration 7, in which the constraint condition includes a parameter representing hardness of the cable.
[Configuration 9]
The simulation device described in configuration 8, in which the load includes a load applied to each of the rigid bodies included in the second target.
[Configuration 10]
The simulation device described in any one of configurations 1 to 9, further including an evaluation unit (177) configured to evaluate the behavior of the second target calculated by the partial cable behavior calculation unit based on the calculated load.
[Configuration 11]
The simulation device described in any one of configurations 1 to 10, in which the instrument includes a robot (30), and
[Configuration 12]
The simulation device described in configuration 11, in which the simulation device calculates a behavior of a target corresponding to a peripheral instrument (230) of the robot disposed in the virtual space by executing a simulation program (126, 122) including an instruction or a parameter controlling a peripheral instrument.
[Configuration 13]
The simulation device described in any one of configurations 1 to 11, further including an image generation unit (164) configured to generate an image visualizing the virtual space.
[Configuration 14]
A simulation program that causes a computer (100) to execute a method for calculating a behavior of a cable (340) attached to an instrument (30) through a plurality of guides (Gn),
It should be considered that the disclosed embodiment is an example in all respects and not restrictive. The scope of the present invention is defined by not the description of the embodiment, but the claims, and it is intended that all changes within the meaning and scope of the claims are included in the present invention.
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, 112: optical drive, 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 parameter, 126: PLC simulation program, 130: robot emulation program, 132: robot parameter, 134: integration program, 135: 3D visualization data, 136: image processing program, 137: cable simulation program, 139: cable parameter, 142: load information, 143: evaluation program, 144: evaluation data, 145: parameter setting program, 147: simultaneous equation, 150: virtual space information management module, 151: instrument behavior generation module, 152: PLC simulator, 154: period generation module, 155: workpiece behavior simulator, 156: physical simulator, 158: relay module, 160: robot emulator, 162: workpiece tracking module, 164: 3D visualizer, 165: cable simulator, 166: partial cable behavior calculation module, 167: load calculation module, 168: constraint determination module, 169: robustness determination module, 170: parameter decision module, 177: evaluation module, 210: robot hand, 232: workpiece, 252: behavior data, 253: image data, 301: arm, 304: rigid body, 306: surface, 310: robot controller, 340: entire cable, 341, 342, 343, Cn: partial cable, 350, 351, G, Gn: cable guide, 1371: constraint determination program, 2520: instrument behavior data, 2521: cable behavior data, 2530: instrument image data, 2531: cable image data, Sn: segment number, Pn: behavior and posture, R: range
| Number | Date | Country | Kind |
|---|---|---|---|
| 2020-213178 | Dec 2020 | JP | national |
| Filing Document | Filing Date | Country | Kind |
|---|---|---|---|
| PCT/JP2021/009843 | 3/11/2021 | WO |