WO2021149419A1 - シミュレーション装置およびシミュレーションプログラム - Google Patents

シミュレーション装置およびシミュレーションプログラム Download PDF

Info

Publication number
WO2021149419A1
WO2021149419A1 PCT/JP2020/047252 JP2020047252W WO2021149419A1 WO 2021149419 A1 WO2021149419 A1 WO 2021149419A1 JP 2020047252 W JP2020047252 W JP 2020047252W WO 2021149419 A1 WO2021149419 A1 WO 2021149419A1
Authority
WO
WIPO (PCT)
Prior art keywords
cable
behavior
simulation
calculated
robot
Prior art date
Application number
PCT/JP2020/047252
Other languages
English (en)
French (fr)
Inventor
慎太郎 岩村
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2021149419A1 publication Critical patent/WO2021149419A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Definitions

  • the present disclosure relates to a simulation device and a simulation program capable of estimating the behavior of an object arranged in a three-dimensional virtual space.
  • Patent Document 1 discloses a simulation of a control program executed in a controller that controls the movement of a machine. ..
  • An object of the present disclosure is to provide a simulation device and a simulation program that enable the routing of cables attached to equipment to be designed in advance.
  • the simulation device is a simulation device that calculates the behavior of a cable attached to a device, and uses parameters related to cable attachment based on the behavior of a first object arranged in a virtual space corresponding to the device. Then, the cable behavior calculation unit that calculates the behavior of the second target placed in the virtual space corresponding to the cable and the behavior of the second target calculated by the cable behavior calculation unit are evaluated based on the behavior. It has an evaluation unit.
  • the behavior of the cable can be calculated using the parameters related to the cable mounting based on the behavior of the device, and by evaluating the calculated behavior, the cable can be calculated from the evaluated parameters related to the mounting. You can design the routing.
  • the behavior of the first object includes the behavior calculated for each predetermined time step, and the cable behavior calculation unit sets the behavior of the first object corresponding to the time step for each time step. Based on this, the behavior of the second object is calculated using the parameters.
  • the behavior of the cable can be calculated for each time step based on the behavior of the device calculated for each time step.
  • the cable behavior calculation unit includes a physics simulator. According to the above disclosure, the behavior of the cable can be calculated by a physics simulator.
  • the second object includes a rigid body link modeled by joining adjacent rigid bodies together with a joint, and the physical simulator is a position between adjacent rigid bodies in the modeled rigid body link.
  • the cable can be modeled as a rigid link with constraints, and the behavior can be calculated by the equation showing the model.
  • the simulation device further includes a load calculation unit that calculates the load applied to the second object based on the behavior of the second object calculated by the cable behavior calculation unit.
  • the load applied to the second object can be calculated based on the calculated behavior.
  • the load includes a load applied to each rigid body included in the second object. According to the above disclosure, the load applied to each rigid body can be calculated.
  • the simulation device displays the load based on the behavior of the second object calculated in each time step according to the time series of the time steps.
  • the simulation device changes the display mode of the load exceeding the threshold value.
  • the load exceeding the threshold value can be presented by changing the display mode.
  • the evaluation unit evaluates the behavior of the second object based on the load calculated by the load calculation unit.
  • the evaluation of the behavior of the second object can be evaluated based on the load.
  • the simulation device includes a parameter setting unit for setting parameters, and when the load satisfies a predetermined condition, outputs the parameters set at the time of calculating the behavior of the second target.
  • parameters can be set (changed) when the simulation is performed, and when the load satisfies a predetermined condition, the parameters used for calculating the behavior can be output.
  • the parameters include the length of the cable or the mounting position of the cable.
  • the parameters can include cable length and mounting position.
  • the parameter includes a parameter representing the hardness of the cable.
  • the parameters can include the hardness of the cable to be attached to the device.
  • the device includes a robot, and the behavior of the first object is calculated by emulation of a robot program having a command code for operating the front robot.
  • the behavior simulation of the cable attached to the robot can be performed based on the first behavior calculated by the emulator of the robot program.
  • an image generation unit that generates an image that visualizes the virtual space is further provided.
  • the simulation program according to the present disclosure is a simulation program that causes a computer to execute a method of calculating the behavior of a cable attached to a device. This method is based on the behavior of the first target placed in the virtual space corresponding to the device, and uses the parameters related to the attachment of the cable to determine the behavior of the second target placed in the virtual space corresponding to the cable. It includes a step of calculating and a step of evaluating the calculated behavior of the second object based on the behavior.
  • the behavior of the cable can be calculated using the parameters related to the attachment of the cable based on the behavior of the device, and the calculated behavior is evaluated.
  • the cable routing can be designed from the parameters related to the installation.
  • the simulation can be performed and the cable routing can be designed without the actual machine to which the cable should be attached.
  • the routing of cables attached to equipment can be designed in advance.
  • FIG. 1 is a diagram schematically showing an example of an application scene of the cable simulation device 1B according to the present embodiment.
  • the cable simulation device 1B calculates (estimates) the behavior of the cable that can be attached to the robot 30, which is an example of the equipment provided in the FA production line.
  • the device to which the cable is attached is not limited to the robot 30.
  • the robot 30 includes, but is not limited to, an arm 301 composed of, for example, articulated robots.
  • the robot 30 includes a robot hand 210 that is detachably attached to the arm 301 at the tip by a connector 7.
  • Cables 341, 342 and 343 are attached to the arm 301, respectively, using cable guides 350, 351, 352 and 353 on the surface 306 (FIG. 10) of the robot 30 (arm 301).
  • the cable guide 350 is attached to the robot hand 210.
  • the cable 341 is mounted between the cable guides 350 and 351
  • the cable 342 is mounted between the cable guides 351 and 352
  • the cable 343 is mounted between the cable guides 352 and 353.
  • cables 341, 342 and 343 have similar characteristics (shape, material, etc.), they are collectively referred to as cable 340 in the common description.
  • the cable 340 is configured by, for example, covering a linear conductor constituting a signal line with an insulator.
  • the material of the insulator is not limited, but a resin material such as plastic, rubber, or vinyl can be used. Further, the material of the conductor is not limited, but a metal having electric conductivity can be used.
  • the cable 340 includes an air cable that circulates a gas such as air. Further, since the cable guides 350, 351, 352 and 353 have the same characteristics (shape, material, etc.), they are collectively referred to as the cable guide 350 in the common description.
  • an appropriate routing of the cable 340 to be attached to the actual robot 30 is designed in advance. If the operator implements the routing of the cable 340 based on the design result, the cost for routing the cable 340 (including the cost and working time of the cable 340) can be reduced. This pre-design is realized by performing the cable simulation with the cable simulation device 1B.
  • the cable simulation device 1B includes a cable simulator 165 that calculates (estimates) the behavior of an object (hereinafter, also referred to as a second object) corresponding to the cable 340 attached to the robot 30 in a three-dimensional virtual space. It is provided with an evaluation module 167 that evaluates the calculated behavior. In FIG. 1, this three-dimensional virtual space is defined by, for example, orthogonal X-axis, Y-axis, and Z-axis.
  • the cable simulation device 1B can be mounted on an information processing device 100 composed of, for example, a general-purpose computer, and the cable simulator 165 and the evaluation module 167 are realized by the information processing device 100 executing a predetermined program.
  • the cable simulation calculates the behavior of the second target based on the device behavior data 2520.
  • the device behavior data 2520 is an object corresponding to the robot 30 (hereinafter, also referred to as a first object), and the behavior of the object arranged in the same space as the three-dimensional virtual space in which the object of the cable 340 is arranged. show.
  • This first object includes, but is not limited to, an object corresponding to, for example, a robot 30 and a robot hand 210 mounted on the robot 30.
  • the device behavior data 2520 is calculated by the information processing device 100 or provided to the cable simulation device 1B from an external device.
  • the device behavior data 2520 is provided to the cable simulation device 1B.
  • the behavior of the first object indicated by the device behavior data 2520 includes a position that changes in time series in the three-dimensional virtual space of the first object.
  • the cable simulator 165 is an example of the "cable behavior calculation unit".
  • the cable simulator 165 uses the cable parameter 139 relating to the attachment of the cable 340 to the robot 30 based on the behavior of the first object indicated by the device behavior data 2520, that is, the position in the time series in the three-dimensional virtual space.
  • the behavior of the second object arranged in the same three-dimensional virtual space is calculated in synchronization with the time step ti of.
  • Cable parameter 139 is a type of parameter that should be considered in the design of the cable 340 routing, including, for example, the length of the cable 340, the mounting position of the cable 340 (ie, the position of the cable guide 350), and the like. Not limited to these.
  • parameters that affect the behavior such as parameters that depend on the material of the cable 340 (for example, parameters that represent the hardness of the cable 340) may be included.
  • the behavior of the object (second target) corresponding to the cable 340 in the three-dimensional virtual space is calculated in synchronization with the behavior of the object (first target) corresponding to the robot 30.
  • the behavior of the object (second object) corresponding to the cable 340 includes the position and orientation of the object on each of the X, Y, and Z axes in the three-dimensional virtual space.
  • This posture is represented by, for example, a combination of roll angle ⁇ , pitch angle ⁇ , and yaw angle ⁇ , which are acceleration components for the X-axis, Y-axis, and Z-axis.
  • the evaluation module 167 is an example of the "evaluation unit".
  • the evaluation module 167 evaluates the behavior based on the behavior of the second target calculated by the cable simulator 165.
  • the evaluation module 167 evaluates the behavior based on, for example, a load applied to the second target calculated from the behavior of the second target, and more specifically, a load that affects the behavior. Such a load is calculated by the load calculation module 166 included in the cable simulation device 1B.
  • the load calculation module 166 is an embodiment of the "load calculation unit".
  • the load calculation module 166 calculates the load based on the behavior of the second target for each time step ti.
  • the type of load may include, but is not limited to, at least one such as elongation, bending and twisting of the second object, the number of collisions of the second object, the force applied to the second object in the event of a collision, and the like. Further, the type of load may include a value as to whether or not the bending radius does not exceed the minimum bending radius (value specified by the specifications of the cable 340).
  • the evaluation module 167 determines that the calculated load satisfies a predetermined condition, the length and mounting position of the cable 340 and the mounting position (that is, the position of the cable guide 350) indicated by the parameters set in the cable simulation are optimally routed. Is evaluated as a design value that can realize.
  • the cable simulation device 1B outputs, stores, or communicates evaluation information.
  • the behavior of the second target corresponding to the cable 340 is calculated using the parameters related to mounting based on the device behavior data 2520 showing the behavior of the first target corresponding to the robot 30 in the three-dimensional virtual space. And the calculated behavior of the second object is evaluated.
  • the evaluation can indicate whether or not the design value of the cable 340 routing indicated by the parameters applied to the cable simulation is appropriate. Therefore, it is possible to carry out the optimum design for routing the cable 340 without the actual machine (robot 30, cable 340 and cable guide 350).
  • FIG. 2 is a diagram schematically showing an apparatus simulated by the simulation apparatus 1 according to the present embodiment.
  • the simulation device 1 includes a system simulation device 1A that estimates the behavior of an actual device controlled by the PLC (programmable logic controller) 200 of the control system 2 provided in the FA production line.
  • the simulation device 1 can be mounted on an information processing device 100 composed of a general-purpose computer including a terminal device such as a PC (Personal Computer) or a tablet terminal, and the information processing device 100 executes a predetermined program. As a result, a system simulation that estimates the behavior of the device is realized.
  • the information processing device 100 provides a support tool for assisting the user in operating the control system 2.
  • the support tool includes a setting tool for preparing a simulation execution environment, a control program execution environment for the control system 2, a communication environment for the control system 2, and the like.
  • the support tool is provided to the user by, for example, a UI (User Interface).
  • the information processing device 100 is communicably connected to the PLC 200, but the simulation can be performed in a manner in which the information processing device 100 is not connected to the PLC 200.
  • the cable simulation device 1B described above may be provided in the simulation device 1. In that case, the simulation device 1 provides an environment in which cable simulation and system simulation can be performed.
  • the control system 2 includes a PLC200, a robot controller 310 and servomotor drivers 531 and 532.
  • the PLC 200, the robot controller 310, and the servo motor drivers 531 and 532 are connected by a daisy chain via the field network 22.
  • the field network 22 for example, EtherCAT (registered trademark) is adopted.
  • EtherCAT registered trademark
  • the field network 22 is not limited to EtherCAT.
  • the information processing device 100 may be connected to the PLC 200 via the network 80. Any wired or wireless communication means may be adopted for the network 80.
  • the PLC 200 and the information processing device 100 communicate according to, for example, USB (Universal Serial Bus).
  • the PLC200 executes the designed control program based on the field values including the output value of the sensor from the field network 22, and sets the target values for the robot controller 310 or the servomotor drivers 531 and 532 according to the execution result, respectively. By giving, the equipment related to the transfer of the robot 30 and the conveyor 230 is controlled.
  • the servo motor drivers 531 and 532 drive the servo motors 41 and 42 of the conveyor 230.
  • Encoders 236 and 238 are arranged on the rotation axes of the servomotors 41 and 42. The encoder outputs the position (rotation angle), rotation speed, cumulative rotation speed, etc. of the servomotors to the PLC200 as feedback values of the servomotors 41 and 42.
  • the robot 30 and the conveyor 230 move the work 232 while cooperating with each other.
  • the movement of the work 232 will be described here for the sake of simplicity, the movement is not limited to the movement.
  • the work 232 placed on the tray 9 may be processed by the robot 30.
  • servomotors 1301, 1302, 1033, 1304 (hereinafter, also collectively referred to as “robot servomotors”) provided in the robot 30 and a robot controller for driving the robot servomotors. 310 is illustrated.
  • robot servomotors As an example of the drive device of the conveyor 230, the servomotor drivers 531 and 532 for driving the servomotors 41 and 42 provided on the conveyor 230 will be illustrated.
  • the robot controller 310 drives the robot servomotor of the robot 30.
  • An encoder (not shown) is arranged on the rotation axis of each robot servomotor. The encoder outputs the position (rotation angle), rotation speed, cumulative rotation speed, etc. of the servomotor to the robot controller 310 as feedback values of the robot servomotor.
  • the servo motor drivers 531 and 532 drive the corresponding servo motors 41 and 42 according to the command value.
  • the control system 2 further includes a photoelectric sensor 6 and an openable / closable stopper 8 in connection with the conveyor 230.
  • the photoelectric sensor 6 detects that the tray 9 provided on the transport surface of the conveyor 230 has reached the front of the predetermined work tracking area, and transmits the detected value to the PLC 200.
  • the stopper 8 closes so as to stop (fix) the tray 9 that has reached the tracking area according to the command value.
  • the robot hand 210 of the robot 30 is attached according to the process.
  • the type of the robot hand 210 includes, for example, a parallel hand, a multi-finger hand, a multi-finger joint hand, and the like, but is not limited thereto, and may include, for example, a type in which the work 232 is picked and placed by a suction type.
  • the robot 30 performs pick and place according to the command value from the robot controller 310. Specifically, the robot 30 picks the work 232 placed on the tray 9 on the conveyor 230 with the robot hand 210, moves the work 232 to the table 55 at a predetermined position while picking it, and places it on the table 55. (Place).
  • the robot hand 210 controls the opening / closing operation of the hand for picking or placing the work 232 according to the command value from the robot controller 310.
  • devices such as a conveyor 230 for transporting the work 232 and a robot 30 (robot 30 and robot hand 210) for handling the work 232 are exemplified.
  • the devices whose behavior is estimated are not limited to these.
  • the cable simulation device 1B calculates (estimates) the behavior of the cable based on the behavior of the device calculated (estimated) by the system simulation.
  • control program may be designed using the result of such a simulation.
  • the control program designed on the information processing apparatus 100 is sent to the PLC 200 via the field network 22.
  • the robot 30 and the conveyor 230 have movable parts that can be moved by a plurality of drive shafts. Each of these drive shafts is driven by a servomotor.
  • the robot 30 has a plurality of arms driven by rotation of robot servomotors (servomotors 1301 to 1304). Each robot servomotor rotates to drive each corresponding arm. By controlling the drive of the robot servomotor by the robot controller 310, each arm is driven three-dimensionally. By driving each arm in this way, the behavior of the robot 30 is realized.
  • the conveyor 230 and the tray 9 on the transport surface move as the servomotors 41 and 42 rotate. This amount of movement (speed, direction, distance, etc. of movement) is determined by the amount of rotation (direction of rotation, angle) of the servomotors 41 and 42. By driving the servomotors 41 and 42 in this way, the behavior of equipment such as the conveyor 230 and the tray 9 is realized.
  • each arm 301 of the robot 30 is associated with a virtual axis, and the position of the robot 30 is determined from the position of each axis.
  • the PLC 200 controls the robot 30 according to a target position that converts the robot 30 into a time series of each axis, whereby the speed and trajectory of movement of each arm 301 are changed to be the speed and trajectory according to the target.
  • the target position of the robot 30 is stored in advance in, for example, the PLC 200.
  • the robot controller 310 receives a target position from the PLC 200, determines the rotation amount of each robot servomotor based on the received target position, and outputs a command value for designating the determined rotation amount to each robot servomotor.
  • each servomotor rotation amount ( ⁇ A, ⁇ B, ⁇ C, ⁇ D) is positioned in a three-dimensional virtual space.
  • Can be converted to For example, when the three-dimensional coordinates P (x, y, z) of the axis of each arm 301 that picks the work 232 are calculated, the three-dimensional coordinates P (x, y, z) of each arm 301 are changed in time series. It is possible to show the behavior of the object corresponding to the robot 30 in the three-dimensional virtual space.
  • the system simulation device 1A is arranged in a three-dimensional virtual space corresponding to the device (more specifically, the robot 30), and the behavior (three-dimensional coordinates P (x, y,) of the first object is arranged. z) Time-series change) is calculated, and the device behavior data 2520, which is the calculation result, is output.
  • the system simulation device 1A can also calculate the behavior of the object corresponding to the work 232 and the conveyor 230 that conveys the work 232 in the three-dimensional virtual space in the same manner as the robot 30, and output the calculation result as the device behavior data 2520. ..
  • the devices are time-synchronized with each other.
  • the plurality of devices connected to the field network 22, that is, the PLC100, the robot controller 310, the servomotor drivers 531 and 532, and the robot hand 210 are time-synchronized timers 90, 91, 92, 93, 94. By operating based on these timers, the transmission / reception timings of data including control commands are synchronized between the devices.
  • FIG. 3 is a schematic view showing an example of the unit configuration of the control system 2 according to the present embodiment.
  • the control system 2 includes a PLC200, a servomotor driver 531 and 532 connected to the PLC200 via the field network 22, a remote IO terminal 5, a robot controller 310 connecting the cable 340, and a field.
  • the PLC 200 includes an arithmetic unit 13, one or more IO units 14, and a special unit 17 that execute main arithmetic processing. These units are configured so that data can be exchanged with each other via the system bus 81, and power is supplied from the power supply unit 12.
  • An information processing device 100 may be connected to the arithmetic unit 13.
  • the IO unit 14 collects detected values 61, 71, 237, and 239 from IO devices including the photoelectric sensor 6, the proximity sensor 87 of the stopper 8, the encoders 236, 238, and the like.
  • the proximity sensor 87 non-contactly detects that the tray 9 with respect to the stopper 8 has approached a predetermined distance.
  • the detected value from each IO device is set (written) in, for example, the memory included in the IO unit 14.
  • the calculation unit 13 executes the calculation of the control program using the value collected by the IO unit 14, and sets (writes) the value of the calculation result in the memory of the IO unit 14.
  • the peripheral device or IO device operates by referring to the value of the memory of the IO unit 14.
  • the field network 22 may be connected to the robot controller 310, the servo motor drivers 531 and 532, and the remote IO terminal 5.
  • the IO remote terminal 5 includes a communication coupler 52 for performing processing related to data transmission in the field network 22, and one or more IO units 53. These units are configured to allow data to be exchanged with each other via the remote IO terminal bus 51.
  • the servomotor drivers 531 and 532 are connected to the arithmetic unit 13 via the field network 22 and drive the servomotors 41 and 42 according to the command value from the arithmetic unit 13.
  • the arithmetic unit 13 generates these command values based on the detected values 237 and 239 from the encoders 236 and 238.
  • the arithmetic unit 13 causes the robot 30 to perform pick and place by executing a predetermined control program with reference to the detected value from the IO device described above. Specifically, when the arithmetic unit 13 detects that the work 232 has approached a predetermined tracking area from the detection value 61 of the photoelectric sensor 6 and the detection value 71 of the proximity sensor 87, the robot causes the robot to perform pick and place.
  • the control command 211 for the arm 301 and the control command 222 for the robot hand 210 are generated and output to the robot 30 via the robot controller 310 and the cable 340.
  • FIG. 4 is a schematic diagram showing an example of a hardware configuration for realizing the simulation device 1 according to the present embodiment.
  • the simulation device 1 can be mounted on the information processing device 100 as shown in FIG. Specifically, the simulation device 1 is realized by executing a program required by the processor 102 of the information processing device 100.
  • the simulation device 1 is provided with an environment for performing a system simulation and a cable simulation.
  • the information processing device 100 has, as main components, an operating system (OS: Operating System), a processor 102 that executes various programs as described later, and a work area for storing data necessary for program execution on the processor 102. It is connected to various networks including a main memory 104 to be provided, an operation unit 106 that accepts user operations such as a keyboard and a mouse, an output unit 108 that outputs processing results such as a display 109, various indicators, and a printer, and a network 80. It includes a network interface 110, an optical drive 112, a local communication interface 116 that communicates with an external device, and a storage 111. These components are connected so as to be capable of data communication via an internal bus 118 or the like.
  • OS Operating System
  • the information processing device 100 is various from a computer-readable storage medium 114 including an optical storage medium (for example, DVD (Digital Versatile Disc)) for non-transiently storing a computer-readable program by the optical drive 112. Read the program or data and install it in storage 111 or the like.
  • an optical storage medium for example, DVD (Digital Versatile Disc)
  • Various programs or data executed by the information processing device 100 may be installed via a computer-readable storage medium 114, but may be downloaded from a server device (not shown) on the network via the network interface 110. You may want to install it.
  • the storage 111 is composed of, for example, an HDD (Hard Disk Drive) or an SSD (Flash Solid State Drive), and stores a program executed by the processor 102.
  • the storage 111 includes a virtual time generation program 120, a relay program 121, a physical simulation program 122, a PLC simulation program 126, and a robot emulation program 130 as simulation programs for realizing the simulation according to the present embodiment.
  • the storage 111 further stores an image processing program 136, an evaluation program 143, and a parameter setting program 145 that generate an image displaying an object arranged in a three-dimensional virtual space.
  • the cable simulation program 137 calculates the behavior of the object corresponding to the cable 340 in the three-dimensional virtual space.
  • the cable simulation program 137 includes a load calculation program 138.
  • the load calculation program 138 calculates the load applied to the cable 340 based on the behavior calculated by the cable simulation program 137.
  • the load calculation program 138 is provided in the cable simulation program 137, it may be a program that does not depend on the execution timing of the cable simulation program 137, that is, is independent of the cable simulation program 137.
  • the evaluation program 143 evaluates the behavior based on the behavior of the object corresponding to the cable 340 calculated by the cable simulation program 137. More specifically, the evaluation program 143 evaluates the behavior based on the load information 142 described later, and outputs evaluation data 144 indicating the evaluation result.
  • the evaluation data 144 may be stored in the storage 111.
  • the parameter setting program 145 stores the cable parameter 139 in the storage 111 based on the user operation content for the information processing device 100, for example.
  • the virtual time generation program 120 generates a virtual time for simulation.
  • the simulation device 1 executes the simulation at a cycle based on the virtual time.
  • the physics simulation program 122 calculates the behavior of the object corresponding to the device that operates in connection with the movement of the work 232.
  • Equipment for which the behavior of the corresponding object is calculated by the physics simulation program 122 includes, for example, a photoelectric sensor 6, a conveyor 230, a tray 9, a stopper 8, and a robot hand 210 related to the transfer or movement of the work 232.
  • the physics simulation program 122 is provided with physics simulation parameters 124 including parameters for defining the behavior of the object corresponding to such a device and parameters for defining the weight or shape of the work 232 and the like.
  • the value of the physics simulation parameter 124 may be appropriately changed by a user operation, an integrated program 134, or the like.
  • the equipment related to the transport or movement of the work 232 and the CAD (Computer Aided Design) data of the work 232 may be used.
  • CAD Computer Aided Design
  • the PLC simulation program 126 calculates the positions of the device and the work 232 from which the behavior of the corresponding object is calculated by the physics simulation program 122. The calculated position is given to the physics simulation program 122. The PLC simulation program 126 is given PLC parameters 128 including parameters necessary for calculating the above positions.
  • the robot emulation program 130 functions as a simulator that reproduces the behavior of the robot 30 by objects.
  • the robot emulation program 130 reproduces the pick-and-place of the work 232 by the robot 30 based on the result (behavior of the object) calculated by the physics simulation program 122.
  • the robot emulation program 130 is given robot parameters 132 including parameters necessary for reproducing the behavior of the robot 30 with the corresponding objects.
  • the relay program 121 provides a relay function for the physics simulation program 122 and the robot emulation program 130 to exchange data with each other.
  • the relay program 121 is not limited, but the relay function is described by, for example, a script instruction.
  • the integrated program 134 executes a process for linking the physical simulation program 122, the PLC simulation program 126, the robot emulation program 130, and the relay program 121 with each other. Specifically, the integrated program 134 typically generates and updates virtual space information 105 that describes the state of an object in the three-dimensional virtual space on the main memory 104.
  • the physical simulation program 122, the PLC simulation program 126, and the robot emulation program 130 refer to (read) the virtual space information 105 to execute each simulation process, and obtain the necessary information from the execution results as the virtual space information. Reflect in 105.
  • the function provided by the integrated program 134 reproduces the behavior and processing of the device in the control system 2 including the device for transporting the work 232 and the robot 30 for moving the work 232 by pick and place.
  • the image processing program 136 is provided with 3D (three-dimensional) visualization data 135 for display on the display 109.
  • the 3D visualization data 135 includes behavior data 252 and image data 253.
  • the image data 253 includes device image data 2530 for drawing an object corresponding to the simulated device and cable image data 2531 for drawing an object corresponding to the cable 340.
  • the cable image data 2531 includes image data corresponding to an object of the rigid body 304 (described later).
  • the behavior data 252 includes device behavior data 2520 and cable behavior including three-dimensional coordinates P (x, y, z), which are positions calculated by using a predetermined function at the positions of each device in the virtual space information 105, and their time series data. Contains data 2521.
  • the cable behavior data 2521 shows the behavior of the object arranged in the three-dimensional virtual space corresponding to the cable 340, which is calculated by the cable simulator 165 based on the data of the device behavior data 2520.
  • the image processing program 136 uses the device image data 2530 and the device behavior data 2520 to target the work 232, the device and the robot 30 related to the transfer of the work 232, and the robot hand 210 attached to the robot 30. Image data for three-dimensionally drawing the behavior of the object in the three-dimensional virtual space is generated and output to the display 109. Further, the image processing program 136 uses the cable image data 2531 and the cable behavior data 2521 to generate image data for three-dimensionally drawing the behavior of the object corresponding to the cable 340 in the three-dimensional virtual space. Output to display 109.
  • the image data 253 may include CAD (Computer-Aided Design) data and the like.
  • the storage 111 stores the cable parameter 139 and the load information 142, which are the parameters of the cable simulation program 137.
  • the cable parameter 139 includes an initial value 140 of the parameter used at the start of execution of the cable simulation and a candidate value 141.
  • the candidate value 141 is a parameter used in the cable simulation, and generally shows a value different from the initial value 140.
  • the load information 142 indicates the load calculated by executing the load calculation program 138.
  • the cable parameter 139 is a parameter specific to the material of the cable 340 and includes a parameter 149 indicating the hardness of the cable 340, for example, the parameter Stiffness and the parameter Damping described later.
  • FIG. 4 shows an example in which the simulation device 1 is realized by a single information processing device 100
  • the simulation device 1 may be realized by linking a plurality of information processing devices.
  • a part of the processing necessary for realizing the simulation device 1 may be executed by the information processing apparatus 100, and the remaining processing may be executed by a server (cloud) on the network or the like.
  • FIG. 4 shows an example in which the simulation device 1 is realized by the processor 102 executing one or a plurality of programs. However, some of the processes and functions required to realize the simulation device 1 are ASICs. It may be implemented using a circuit such as Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • FIG. 5 is a schematic diagram showing an example of a functional configuration for realizing the simulation device 1 according to the present embodiment.
  • the function shown in FIG. 5 is typically a program (virtual time generation program 120, relay program 121, physical simulation program 122, PLC simulation program 126, robot emulation program 130, integrated program 134) of the processor 102 of the information processing apparatus 100. , Image processing program 136, cable simulation program 137, evaluation program 143, parameter setting program 145, etc.).
  • the simulation device 1 draws an object in a three-dimensional virtual space based on the functions for the system simulation device 1A and the cable simulation device 1B, the cycle generation module 154 that generates the execution cycle of the system simulation and the cable simulation, and the simulation result. It is equipped with a 3D visualizer 164 for.
  • the 3D visualizer 164 may include functions realized by executing the image processing program 136.
  • the system simulation device 1A includes a virtual space information management module 150, a PLC simulator 152, a work behavior simulator 155, a physical simulator 156, a relay module 158, a robot emulator 160, and a work tracking module. 162 and a 3D visualizer 164 are included.
  • the virtual space information management module 150 is realized by executing the integrated program 134 (FIG. 4), and defines information on the behavior (position, posture, etc.) of each object in the three-dimensional virtual space where the simulation is performed.
  • the virtual space information 105 of the above is managed.
  • the PLC simulator 152 is realized by executing the PLC simulation program 126 (FIG. 4), and calculates the behavior of the object corresponding to the device related to the transfer of the work 232 according to the physical simulation parameter 124.
  • the information calculated by the PLC simulator 152 is reflected in the virtual space information 105.
  • the PLC simulator 152 is a program for estimating the behavior of the device related to the transportation of the work 232, and corresponds to a simulation program including a plurality of instructions included in the PLC program. These plurality of instructions may include a group of instructions for controlling the behavior of the equipment involved in the transfer included in the PLC program.
  • the PLC program is described in, for example, a programming language described in a cyclic execution type language (for example, a ladder language).
  • the relay module 158 outputs the measurement result of the work 232 by the measurement process using the image measurement parameter 129 of the work 232 to the robot emulator 160.
  • the robot emulator 160 reproduces the behavior of the robot 30 that conveys the work arranged in the virtual space according to the measurement result from the relay module 158.
  • the information on the behavior of the robot 30 calculated by the robot emulator 160 is reflected in the virtual space information 105.
  • the robot emulator 160 is realized by executing the robot emulation program 130.
  • the robot emulator 160 outputs device behavior data 2520 showing the behavior of the robot 30 that moves the work 232 arranged in the three-dimensional virtual space.
  • the robot emulator 160 performs a simulation by regarding the arm 301 of the robot 30 and the robot hand 210 attached to the tip thereof as an integral rigid body.
  • the robot emulation program 130 includes a group of instructions included in the program of the robot controller 310.
  • This command group includes commands of a robot program having a command code for causing the robot 30 to operate the work 232.
  • These commands include commands that calculate the trajectory of the target of the robot 30 based on the output data of the PLC simulator 152 of the virtual space information 105, and calculate command values that indicate the behavior of each axis based on the calculated trajectory. ..
  • the robot emulator 160 executes a command, it generates a command value for each axis that controls the behavior of the robot 30, and outputs the generated command value to the virtual space information management module 150.
  • the virtual space information management module 150 manages (stores) the command value from the robot emulator as the virtual space information 105.
  • the work behavior simulator 155 calculates the behavior of one or more work 232 objects arranged in the three-dimensional virtual space. Specifically, the work behavior simulator 155 is realized by executing the physics simulation program 122 (FIG. 4), and according to the information on the behavior of the object corresponding to the transport device of the work 232 by the PLC simulator 152, 3 The behavior of the work 232 placed in the dimensional virtual space is calculated and updated. In calculating the behavior of the work 232, the work behavior simulator 155 calculates the position, posture, moving speed, moving direction, and the like of the work 232. The position and posture of the work 232 are calculated based on the work parameters arbitrarily set by the user or the like. The position and orientation information of the work 232 calculated by the work behavior simulator 155 is reflected in the virtual space information 105. Work parameters can also be included in physics simulation parameters 124.
  • the physics simulator 156 is realized by executing the physics simulation program 122 (FIG. 4).
  • the physics simulator 156 calculates the behavior (position, posture, moving speed, moving direction, etc.) of the object corresponding to the device for transporting or moving the work 232 according to the physics simulation parameter 124.
  • Objects simulated by the physics simulator 156 include a photoelectric sensor 6, a stopper 8, a tray 9, a robot hand 210, a conveyor 230, and a work 232.
  • the physics simulator 156 calculates the behavior of these objects such as the position and posture according to a predetermined physics calculation.
  • the physics simulator 156 sets the mass parameter 127 of the object to zero among the physics simulation parameters 124 used for this physics calculation, and executes the calculation.
  • the meaning of setting the mass to zero is as follows. That is, when the mass parameter is not zero, the physics simulator 156 calculates the components of the mechanical action on the object such as velocity, acceleration, and gravity based on the mass of the object by physics calculation, and the calculated mechanics. The physics simulator 156 calculates (updates) the position of the object in the next time step ti depending on the component of the target action. On the other hand, in the present embodiment, the PLC simulator 152 and the robot emulator 160 determine (control) the position of each object. Therefore, in order to make the update component of the position of the object by the physics simulator 156 zero (invalidate), the mass parameter of each object used for the physical calculation of the physics simulator 156 is set to zero.
  • Velocity, acceleration, gravity, etc. are also zero for objects whose position (behavior) is calculated with the mass set to zero by physics calculation, so even if these objects collide with each other, the mechanical components (repulsion, etc.) are calculated in physics calculation. Since the component such as the bounce of the object such as the above is calculated as zero (invalidation), the mechanical action on the object can be invalidated and the position in the three-dimensional virtual space can be detected.
  • the physics simulator 156 stores the three-dimensional position coordinates P (x, y, z) of the robot hand 210 calculated by physical calculation as device behavior data 2520.
  • the physics simulator 156 is executed for each time step ti, so that the device behavior data 2520 includes time-series three-dimensional coordinates P (x, y, z) corresponding to the robot hand 210.
  • the work tracking module 162 is realized by executing the robot emulation program 130.
  • the work tracking module 162 tracks the work 232 picked and placed by the robot 30 in the three-dimensional virtual space based on the behavior information of the robot 30 from the robot emulator 160.
  • the position information (work position) of the work 232 tracked by the work tracking module 162 is reflected in the virtual space information 105.
  • the cable simulation apparatus 1B includes a cable simulator 165 realized by executing the cable simulation program 137 and an evaluation module 167 realized by executing the evaluation program 143.
  • the cable simulator 165 has a load calculation module 166.
  • the load calculation module 166 is realized by executing the load calculation program 138.
  • the load calculation module 166 may be independent of the cable simulator 165 without being provided in the cable simulator 165.
  • the cable simulator 165 is executed for each time step ti, and based on the data of the device behavior data 2520 corresponding to the time step ti, the cable parameter 139 is used to create a three-dimensional virtual space corresponding to the cable 340.
  • the behavior of the arranged object is calculated, and the calculation result is stored as cable behavior data 2521.
  • the cable simulator 165 calculates the behavior of the object corresponding to the cable 340 for each time step ti, and the cable behavior data 2521 indicates the time-series behavior of the cable 340 in the three-dimensional virtual space.
  • the 3D visualizer 164 corresponds to an image generation unit that generates an image that visualizes a three-dimensional virtual space.
  • the 3D visualizer 164 is a 3D virtual space object corresponding to the work 232, the device related to the transfer of the work 232, the robot 30 and the robot hand 210, based on the command value for each time step ti of the virtual space information 105.
  • the dimensional coordinates P (x, y, z) are calculated.
  • the device behavior data 2520 including the time-series three-dimensional coordinates P (x, y, z) is calculated.
  • the 3D visualizer 164 generates image data that visualizes the behavior of the device in the three-dimensional virtual space based on the device behavior data 2520 and the device image data 2530, and 3 based on the cable behavior data 2521 and the cable image data 2531. Generate image data that visualizes the behavior of cables in a three-dimensional virtual space. These image data are output to the display 109. As a result, an image showing the behavior of the device calculated by the system simulation and an image showing the behavior of the cable 340 calculated by the cable simulation are displayed on the display 109.
  • the cycle generation module 154 is realized by executing the virtual time generation program 120.
  • the cycle generation module 154 outputs a signal ST synchronized with the output of the timer to other parts based on the output of the timer (not shown) included in the processor 102.
  • Each unit executes a process or a program in synchronization with a cycle in which the signal ST is output from the cycle generation module 154 (hereinafter, referred to as a predetermined time step ti). As a result, each part of FIG. 5 is executed synchronously with each other at predetermined time step ti.
  • the cycle of the signal ST is not limited, but may be determined based on the communication cycle of the field network 22 (hereinafter, also referred to as “control cycle”) according to the time synchronization of the control system 2 of FIG.
  • the period indicated by the time step ti based on the signal ST may be variable.
  • the value of "i" in the time step ti changes to a predetermined maximum value such as 1, 2, 3 ... In synchronization with the output cycle of the signal ST, and the maximum value is the above. It may be determined based on the length of time required from the start to the end of the predetermined motion (for example, pick and place) described in the above. Therefore, the time required for the cable simulation can be determined based on the output cycle of the signal ST and the maximum value of "i" in the time step ti.
  • the simulation device 1 of FIG. 5 can activate one of the system simulation device 1A and the cable simulation device 1B in accordance with an instruction from a user receiving, for example, via the operation unit 106. Further, the simulation device 1 can determine the timing to start the system simulation device 1A or the cable simulation device 1B according to an instruction from a user who receives the simulation device 1 via, for example, the operation unit 106. For example, in the simulation device 1, the system simulation device 1A is started, and then the start timing of the cable simulation device 1B is set. Thereby, when the cable simulation device 1B is started, the device behavior data 2520 can be provided to the cable simulator.
  • the information processing device 100 implements both the system simulation device 1A and the cable simulation device 1B. However, if the device behavior data 2520 can be used for the cable simulation device 1B, the information processing device 100 May mount only the cable simulation device 1B.
  • FIG. 6 is a diagram schematically showing an example of a processing sequence of the cable simulation apparatus 1B according to the present embodiment.
  • the cable simulation process performed by the cable simulation device 1B is shown in association with the peripheral process.
  • the device behavior data 2520 used in the following cable simulation shows the behavior of the object corresponding to the robot 30 (more specifically, the arm 301).
  • the user operates the operation unit 106 to input to the information processing apparatus 100 an instruction for setting a system simulation and an instruction for adding a cable simulation (step S80, step). S83).
  • the processor 102 sets, for example, various parameters for the system simulation so that the system simulation can be executed according to the instruction from the user. Further, the processor 102 sets a state in which the cable simulation can be executed according to the instruction for adding the cable simulation.
  • the cable simulator 165 is set so that the device behavior data 2520 can be referred to.
  • the user operates the operation unit 106 and inputs an instruction for executing the system simulation and storing the device behavior data 2520 to the information processing device 100 (step S85).
  • the processor 102 starts the system simulation device 1A (step S87), stores (holds) the device behavior data 2520 as a result of the system simulation in the storage 111 (step S88), and indicates that the storage of the device behavior data 2520 is completed. Is output to, for example, the display 109 (step S89).
  • the user operates the operation unit 106 and inputs the cable parameter 139 to the information processing device 100 (step S91).
  • the parameter setting program 145 executed by the processor 102 stores the cable parameter 139 received from the operation unit 106 in the storage 111.
  • the user operates the operation unit 106 and inputs an instruction to start execution of the cable simulation to the information processing device 100 (step S93).
  • the processor 102 starts the cable simulator 165 according to the execution start instruction of the cable simulation.
  • the cable simulator 165 executes a process (loop process) of repeating the cable simulation for each parameter (each of the initial value 140 and the candidate value 141) (step S100).
  • the cable simulator 165 calculates and stores the cable behavior data 2521 for each time step ti by executing a simulation based on the device behavior data 2520 in synchronization with the time step ti based on the signal ST (step S100a). Further, when the cable simulation is executed, the load calculation module 166 calculates and stores the load information 142 for each time step ti.
  • the evaluation module 167 executes the evaluation process (step S130). Specifically, the evaluation module 167 evaluates the behavior based on the cable behavior data 2521 and more specifically based on the load information 142 calculated from the cable behavior data 2521, and stores the evaluation data 144 which is the evaluation result. do. The evaluation module 167 outputs the information of the evaluation data 144 (step S140). For example, an image based on the evaluation data 144 is displayed on the display 109.
  • the parameter setting program 145 provides a UI tool.
  • a UI tool will be described with reference to FIGS. 7 and 8.
  • FIG. 7 is a diagram schematically showing an example of a UI screen related to the parameter setting of the cable according to the present embodiment.
  • FIG. 8 is a diagram schematically showing another example of the UI screen related to the parameter setting of the cable according to the present embodiment.
  • the cable 340 and the cable guide 350 are treated as being integrated.
  • FIG. 7 is an example of a 3D image displayed on the display 109, and the 3D image shows a state in which the cable 340 is attached by attaching the arm 301 of the robot 30 and the cable guide 350 to the arm 301.
  • the 3D image of FIG. 7 is generated by the processor 102 from the CAD data of the device image data 2530 and the cable image data 2531. The user can set whether or not to connect the cable 340 between the cable guides by manipulating the image on the display 109, for example.
  • the user operates the UI screen shown in FIG. 8 to set the initial value 140 and the candidate value 141 as the cable parameter 139.
  • a set (0) of initial parameter values 140 can be set, and a set (1) to (5) of candidate values 141 can be set.
  • Each set of parameters includes the length of the cable 340 (Cable Length) and the position of each cable guide 350 (Offset From Guide Cad Data).
  • the parameter setting program 145 converts the position of each cable guide 350 from the position on the 3D screen set by the user in FIG. 7. Since this determines the distance between the cable guides, the parameter setting program 145 can determine the length of the cable 340 between the cable guides.
  • FIG. 9 is a diagram schematically showing the relevance of the cable simulation data according to the present embodiment using the cable data 146.
  • the mounting positions of the four cable guides 350, 351, 352 and 353 are set by the user setting operations of FIGS. 7 and 8, for example, as shown in FIG.
  • cables 341, 342 and 343 connected between the cable guides are set.
  • FIG. 9 shows that cable data 146 is stored corresponding to each of the cables 341, 342 and 343 of FIG.
  • Cable data 146 shows data acquired when a cable simulation is performed on the corresponding cable 340 using the initial value 140 of the cable parameter 139 and each of the two candidate values 141.
  • the cable data 146 of the cables 341, 342 and 343 are referred to as cable data (1), cable data (2) and cable data (3), respectively. Further, in the description common to the cable data (1), the cable data (2), and the cable data (3), they are collectively referred to as the cable data 146.
  • the cable data 146 includes cable behavior data 2521, load information 142, and evaluation data 144 associated with each of the initial value 140 and the candidate value 141 of the cable parameter 139.
  • the cable behavior data 2521 includes the cable behavior data (0), the cable behavior data (1), and the cable behavior data (2) in association with the initial value 140, the candidate value (1), and the candidate value (2), respectively.
  • the cable behavior data (0), cable behavior data (1), and cable behavior data (2) are time-stepped by cable simulation using the parameters of the initial value 140, the candidate value (1), and the candidate value (2), respectively.
  • the load information 142 is associated with the cable behavior data (0), the cable behavior data (1), and the cable behavior data (2), respectively, and the load information (0) and the load information calculated from the cable behavior data are associated with each other. Includes (1) and load information (2).
  • the evaluation data 144 is associated with the load information (0), the load information (1), and the load information (2), and the evaluation data (0), the evaluation data (1), and the evaluation data 144 are the results of evaluating the behavior from the load information. Includes evaluation data (2).
  • FIG. 10 is a diagram schematically showing an example of a physical simulation model of the cable according to the present embodiment.
  • the cable simulator 165 includes a physics simulator that executes a physics simulation.
  • the object (second object) corresponding to the cable 340 has a plurality of rigid bodies 304 connected by joining adjacent rigid bodies 304 with a joint (joint 305).
  • the rigid bodies 304 have a predetermined size and shape, and in the rigid body link, the rigid bodies 304 are connected in a row by joints 305.
  • the rigid body 304 is, for example, a cylindrical object that does not deform. In the physics simulation, focusing on the center of the rigid body 304, the rigid body 304 is defined as a mass point having the current position and the immediately preceding position of the center.
  • the joint 305 corresponds to a joint such as a spring or a damper, and in the model, the joint 305 corresponds to a constraint condition that constrains translation and rotation of adjacent rigid bodies 304 in the x, y, and z axes. ..
  • FIG. 10 shows a state in which both ends of a row of rigid bodies 304 are attached to the robot 30 (arm 301) by an object 302 corresponding to the cable guide 350.
  • the rigid body link is modeled by a joint structure in which the relationship between adjacent rigid bodies with respect to the position and orientation of the rigid body 304 is constrained.
  • the rigid body link is composed of three rigid bodies 304, but the rigid body 304 is not limited to three. That is, the number of rigid bodies 304 is set according to the cable length (Cable length in FIG. 8) specified by the cable parameter 139.
  • the cable parameter 139 is used to obtain a constraint equation including the constraint condition representing the model of FIG.
  • the behavior (cable behavior data 2521) of the model (FIG. 10) in the three-dimensional virtual space is calculated.
  • FIG. 11 is a diagram showing an example of simultaneous equations 147 of the physical simulation model of the cable of FIG. Equation 147 includes the corresponding equations Ati, Bti and Cti for each of the rigid bodies 304 in FIG.
  • the position (coordinates of each of the x-axis, y-axis and z-axis) and the attitude of the rigid body 304 tilt ⁇ (roll), ⁇ (pitch), ⁇ (yaw) of each of the x-axis, y-axis and z-axis)
  • the values of these variables are calculated by solving the simultaneous equations (equation 147).
  • the cable simulator 165 repeatedly solves the simultaneous equations (equation 147) for each time step ti using the parameter 139 based on the device behavior data 2520. Thereby, the value of the variable corresponding to the position and the posture of each rigid body 304 can be calculated for each time step ti.
  • FIG. 12 is a diagram schematically showing the update of the position of the physics simulation according to the present embodiment. With reference to FIG. 12, the update process of the position of the rigid body 304 performed by the cable simulator 165 will be described.
  • each rigid body 304 is calculated for each time step ti.
  • the behavior of each rigid body 304 is calculated for each time step ti.
  • one of the colliding rigid bodies 304 may invade (get into) the other ((A) in FIG. 12).
  • the cable simulator 165 detects whether or not the rigid body 304 invades another rigid body 304 ((A) in FIG. 12).
  • x0 calculated position
  • ⁇ t time of time step ti
  • v velocity
  • Collision includes, for example, that the distance between the position (coordinates) of an object and the position (coordinates) of another object in a three-dimensional virtual space is, for example, equal to or less than a threshold value.
  • the threshold may be a value based on the size of the object (width, height, etc.).
  • the collision detection method is not limited to this.
  • the cable simulator 165 changes the position (position: Xpredict) of the colliding rigid bodies 304 so that the intrusion can be resolved ((B) in FIG. 12).
  • position X0 position: Xpredict
  • Xcorrect position after correction: Xcorrect
  • the positions of other rigid bodies 304 adjacent to the rigid body 304 are changed along with the change. There is a possibility of deviation.
  • the behavior of each rigid body 304 becomes stable in the cable simulation.
  • the above constraint conditions correspond to physical constraint parameters for shifting the behavior of the object to such a stable state.
  • the cable simulator 165 can also update the y-coordinate position and the z-coordinate position in the same manner as the update of the x-coordinate position.
  • a parameter 149 representing the hardness of the cable 340 can be included as a parameter related to the constraint condition for shifting the behavior of the cable 340 to the stable state.
  • the hardness parameter 149 includes, for example, the parameter Stiffness and the parameter Damping specific to the material of the cable 340.
  • the parameter Stiffness indicates the difficulty of deformation of the rigid body 304, and is equivalent to, for example, Young's modulus.
  • the parameter Damping indicates the damping characteristic of the rigid body 304 against vibration.
  • the parameter Damping acts to suppress the vibration of the cable 340 in the cable simulation. Specifically, since the cable guide 350 attached to the robot 30 is moved by the robot emulator 160 (behavior changes), the rigid body 304 accelerates according to the speed of the robot 30, and the cable 340 vibrates accordingly. Will continue. Therefore, by performing the cable simulation using the parameter Damping, when the position of the cable guide 350 moves with the behavior of the robot 30, the speed of the rigid body 304 can be reduced and the vibration of the cable 340 can be suppressed. It will be possible.
  • the cable simulator 165 updates the position based on the hardness of the cable 340 by executing the operations shown in STEP1, STEP2 and STEP3 below.
  • the cable simulator 165 calculates the positions (positions [current]) in the current time step ti by calculating (Equation 7) and (Equation 8) based on the velocity calculated in [STEP1] above. ) Is updated.
  • the cable simulator 165 repeats the operations of [STEP1] to [STEP3] for each of the x, y, and z coordinate positions of all the rigid bodies 304.
  • the position of each rigid body 304 is the position calculated based on the hardness parameter 149 peculiar to the material of the cable 340, and the position where the intrusion is eliminated (the intrusion is eliminated). Become.
  • the cable simulator 165 can start the cable simulation of the next time step ti using such a calculated position.
  • FIG. 13 is a flowchart schematically showing the cable simulation according to the present embodiment and the processing related thereto.
  • the cable simulator 165 acquires the parameters (cable length parameter, cable 340 mounting position (Offset From Guide Cad Data) parameter) from the cable parameter 139, and the cable simulation program. It is set to 137 (step S103). Thereby, the length of the cable 340 between each cable guide, that is, the number of rigid bodies 304 is set.
  • a parameter with an initial value of 140 is set in step S103. For illustration purposes, the length of the cable 340 between each cable guide is the same.
  • the cable simulator 165 reads the behavior data corresponding to the current time step ti from the device behavior data 2520 (step S109), and based on the read behavior data, the cable parameter 139 set in step S103. Is used to calculate the behavior of the object corresponding to the cable 340 (step S111).
  • the cable simulator 165 uses the simultaneous equations shown in Equation 147 of FIG. 11, the equation of position update according to the constraint condition of FIG. 12 (step S11a), and the position update according to the hardness parameter 149 of the cable 340 (step S11b). It is carried out using an equation.
  • the Projected Gauss-Seidel method can be used to calculate the constraint equation using this constraint condition.
  • the cable behavior data 2521 indicating the behavior of the cable 340 calculated in step S111 is stored in the storage 111.
  • step S111 When the position of the object (the position of each rigid body 304) in the current time step ti is calculated in step S111, the load calculation module 166 is based on the cable behavior data 2521 which is the cable simulation result of the time step ti.
  • the load applied to the rigid body link is calculated (step S113), and the calculated load information 142 is output (step S115).
  • the load information 142 is stored in the storage 111.
  • step S121 the process proceeds to the next time step ti (step S121), and the process returns to step S107.
  • step S107 the cable simulator 165 determines whether the condition (ti> tn) is satisfied.
  • step S107 When the condition of (ti> tn) is not satisfied (NO in step S107), the process proceeds to step S109, but when it is determined that the condition is satisfied (YES in step S107), the cable simulator 165 uses the storage 111. It is determined whether the next cable parameter 139 is stored in, that is, whether the candidate value 141 is stored (step S123).
  • next cable parameter 139 is not stored (NO in step S123)
  • the process ends, but when it is determined that the next cable parameter 139 is stored (YES in step S123), Return to step S103.
  • the next cable parameter 139 (candidate value 141) is read out (step S103), and a cable simulation (step S105 to step S121) using the next cable parameter 139 is performed.
  • the behavior of the cable object is calculated in association with each of the cable parameters 139 (initial value 140, candidate value 141) (step S111), and the cable behavior which is the calculation result.
  • Load information 142 based on data 2521 and cable behavior data 2521 is stored (FIG. 9).
  • the load calculation module 166 calculates load information 142 as shown in FIG. 14 based on the cable behavior data 2521.
  • the type 1412 of the load applied to the cable 340 includes, but is not limited to, bending, stretching, twisting, the number of collisions, and the repulsive force.
  • FIG. 14 is a diagram schematically showing an example of the load information 142 according to the present embodiment.
  • load information (0), load information (1), and load information (2) associated with each of the cable behavior data (0), the cable behavior data (1), and the cable behavior data (2) are shown. Since the load information (0) to the load information (2) include the same items, they are collectively referred to as the load information 142 in the common description.
  • the load information 142 is a load applied to each rigid body 304 constituting a rigid body link between the cable guides at each position 1411 between the cable guides, and includes the load shown by the type 1412.
  • the rigid body link between the cable guides is composed of, for example, j rigid bodies 304, and the position 1411 in FIG. 14 is specified by the position of each rigid body 304 (position indicated by 1, 2, 3, ... J).
  • the load calculation module 166 calculates the load applied to the rigid body 304, that is, each position 1411 according to a predetermined calculation based on the behavior (position and posture) of each rigid body 304. For example, the twist and bend of each rigid body 304 are calculated from the behavior of the rigid body 304 and the adjacent rigid body 304, and the elongation is calculated from the distance between the adjacent rigid bodies 304 (the larger the distance, the more pulled), and the repulsion is calculated. The force is calculated from the distance invaded at the time of the collision described above (the larger the distance, the larger the repulsive force).
  • the collision calculated by the load calculation module 166 may include a collision with an object (robot 30, work 232, conveyor 230, etc.) different from the rigid body 304.
  • the evaluation module 167 is based on each of the load information 142 (load information (0), load information (1), and load information (2)), and the behavior of the rigid body link associated with the load information 142 (cable behavior data 2521). To evaluate.
  • the evaluation module 167 stores the evaluation data 144 (evaluation data (0), evaluation data (1), and evaluation data (2)), which is the evaluation result, in association with the cable behavior data 2521 (FIG. 9).
  • FIG. 15 is a flowchart of the evaluation process according to the present embodiment.
  • the evaluation module 167 sets the conditions for evaluating the cable behavior data 2521 in the evaluation program 143 based on the user operation from the operation unit 106 (step S131).
  • Predetermined conditions for evaluation are shown, for example, using a load magnitude threshold for each load type 1412. More specifically, the predetermined condition may specify the cable parameter 139 used in the calculation of the cable behavior data 2521, which has the smallest corresponding load value, as the optimum value for the design of the cable routing.
  • the evaluation module 167 searches for the load information 142 associated with each cable parameter 139 based on the predetermined evaluation conditions (step S133). Based on the search result, the evaluation module 167 determines whether or not the load information 142 that satisfies the predetermined condition is searched from the load information 142 associated with each of the cable parameters 139 (step S135). Specifically, it is determined whether or not the load information 142 can be searched so that the values of all the load types 1412 are less than the threshold value.
  • the evaluation module 167 determines that the load information 142 satisfying the predetermined condition is not searched (NO in step S135), the cable behavior data 2521 matching the predetermined condition is not calculated, that is, the cable parameter 139 is not set. Is output (step S139). Further, when the evaluation module 167 determines that the load information 142 satisfying the predetermined condition has been searched (YES in step S135), the cable behavior data 2521 matching the predetermined condition is calculated, and is used for the calculation. The cable parameter 139 (set in step S103 at the time of the calculation), that is, the cable parameter 139 associated with the load information 142 is searched and output (step S137).
  • the 340 routing can be pre-designed. Further, according to the pre-design of the routing, the time required for the routing work of the cable 340 can be shortened, and the routing jig such as the cable guide 350 can be designed in advance.
  • FIG. 16 is a diagram showing an example of a display screen of the load information 142 according to the present embodiment.
  • the load calculation module 166 or the evaluation module 167 displays an image based on the load information 142 on the display 109.
  • a graph of bending load information 142 is shown.
  • the horizontal axis is the position information which is the identifier (segment number) of each rigid body 304
  • the vertical axis is the bending value.
  • the graphs for each time step ti are displayed side by side in the depth direction of the screen according to the time series of the time step ti.
  • the 3D display can show the magnitude of the load (bending) applied to each position of the object in each time step ti and the change over time in the magnitude of the load at the position on one screen.
  • the user can visually recognize the portion of the object of the cable 340 where a large load is applied or the load applied to the entire object, and can also predict the life of the cable 340 corresponding to the object from the load information 142. ..
  • the evaluation module 167 changes the display mode (display color, etc.) for the load exceeding the threshold value among the loads corresponding to the identifiers of the rigid bodies 304.
  • FIG. 16 illustrates a screen of bending information, but other types of load information 142 can be displayed in the same manner.
  • the 3D visualizer 164 may generate image data for visualizing the three-dimensional virtual space by using the device behavior data 2520 and the cable behavior data 2521 which are the simulation results.
  • the display 109 displays an image based on this image data. As a result, the display 109 can display a three-dimensional image in which the cable 340 attached to the robot 30 moves in conjunction with the movement of the robot 30.
  • the cable simulation exemplifies the configurations provided by the processor 102 of the information processing apparatus 100 of FIG. 4 by executing a program stored in a memory such as a storage 111, and a part or all of these provided configurations.
  • a dedicated hardware circuit for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)
  • the main part of the information processing apparatus 100 may be realized by using hardware that follows a general-purpose architecture. In this case, virtualization technology may be used to execute a plurality of OSs having different uses in parallel, and to execute necessary applications on each OS.
  • the information processing device 100 may include a plurality of processors.
  • the cable simulation can be performed by multiple processors.
  • the processor 102 includes a plurality of cores
  • the cable simulation can be executed by the plurality of cores in the processor 102.
  • the storage medium 114 of the information processing device 100 can read the information of the program or the like recorded by the computer or other device, the machine, or the like by electrically, magnetically, optically, mechanically, or the information of the program or the like. It is a medium that accumulates by chemical action.
  • the processor 102 of the information processing device 100 may acquire the program or device behavior data 2520 related to the cable simulation described above from these storage media.
  • the present embodiment as described above includes the following technical ideas.
  • [Structure 1] A simulation device (1B) that calculates the behavior of a cable (340) attached to the device (30). Based on the behavior (2520) of the first object arranged in the virtual space corresponding to the device, the second object arranged in the virtual space corresponding to the cable is used by using the parameter (139) related to the attachment of the cable.
  • Cable behavior calculation unit (165) that calculates the behavior (304, 305) of the target
  • a simulation apparatus including an evaluation unit (167) that evaluates the behavior of the second object calculated by the cable behavior calculation unit based on the behavior.
  • the behavior of the first object includes a behavior calculated for each predetermined time step (ti).
  • the cable behavior calculation unit The simulation apparatus according to configuration 1, wherein the behavior of the second target is calculated for each time step by using the parameters based on the behavior of the first target corresponding to the time step.
  • the second object includes a rigid body link modeled by joining adjacent rigid bodies (304) with a joint (304).
  • the physics simulator An operation according to an equation representing the relationship between the positions and postures of adjacent rigid bodies in the modeled rigid body link and the constraint conditions imposed on the relationship between the positions and postures of the rigid bodies, which is a condition corresponding to the joint.
  • the simulation apparatus according to configuration 3, wherein the behavior of the second target is calculated by carrying out the above based on the behavior of the first target.
  • the simulation apparatus according to configuration 4 further comprising a load calculation unit (166) for calculating a load applied to the second target based on the behavior of the second target calculated by the cable behavior calculation unit.
  • the simulation apparatus according to configuration 5 wherein the load includes a load applied to each rigid body included in the second object.
  • [Structure 9] The evaluation unit The simulation apparatus according to any one of configurations 5 to 8, which evaluates the behavior of the second object based on the load calculated by the load calculation unit.
  • a parameter setting unit (145) for setting the parameters is provided.
  • [Structure 11] The simulation apparatus according to any one of configurations 1 to 8, wherein the parameter includes the length of the cable or the mounting position of the cable (140, 141).
  • [Structure 12] The simulation apparatus according to any one of configurations 1 to 11, wherein the parameter includes a parameter (149) representing the hardness of the cable.
  • the device includes a robot (30).
  • the simulation device according to any one of configurations 1 to 12, wherein the behavior of the first object is calculated by emulation of a robot program having a command code for operating the robot.
  • the simulation apparatus according to any one of configurations 1 to 13, further comprising an image generation unit (164) that generates an image that visualizes the virtual space.
  • a simulation program (138) that causes a computer (100) to execute a method of calculating the behavior of a cable (340) attached to a device (30).
  • the method is Based on the behavior of the first target placed in the virtual space corresponding to the device, the behavior of the second target placed in the virtual space corresponding to the cable is calculated using the parameters related to the attachment of the cable.
  • Step (S100) and A simulation program including a step (S130) of evaluating the calculated behavior of the second object based on the behavior.
  • 1 simulation device, 1A system simulation device, 1B cable simulation device, 30 robots 100 information processing device, 102 processor, 104 main memory, 105 virtual space information, 106 operation unit, 108 output unit, 109 display, 111 storage, 112 optical Drive, 114 storage medium, 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 integrated program, 135 3D visualization data, 136 image processing program, 137 cable simulation program, 138 load calculation program, 139 cable parameters, 140 initial values, 141 candidate values, 142 load information, 143 evaluation programs, 144 evaluation data, 145 parameter setting programs, 146 cable data, 147 equations.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Robotics (AREA)
  • Manipulator (AREA)

Abstract

機器に取付けられるケーブルの引き回しを事前に設計する。機器に取付けられるケーブルの挙動を算出するシミュレーション装置(1B)は、機器に対応する仮想空間に配置された第1の対象の挙動に基づき、ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する仮想空間に配置された第2の対象の挙動を算出し、算出された第2の対象の挙動を、当該挙動に基づき評価する。

Description

シミュレーション装置およびシミュレーションプログラム
 本開示は、3次元仮想空間に配置された対象の挙動を推定できるシミュレーション装置およびシミュレーションプログラムに関する。
 コンピュータを用いたシミュレーションは様々な技術分野に応用されている。このようなシミュレーションをFA(Factory Automation)に利用した例として、例えば、特開2016-042378号公報(特許文献1)は、機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを開示する。
特開2016-042378号公報
 FAの分野では、機械の一例である産業用ロボットに取付けられるケーブルの引き回しを事前に設計したいとの要望があった。具体的には、従来、産業用ロボットのケーブルを引き回す場合、ユーザーは、ケーブルを実際に操作しながら、適切な取付け位置またはケーブル長を決定する作業をしていたが、この作業は試行錯誤を繰り返すことから長時間を要していた。したがって、ケーブル引き回し(取付け位置またはケーブル長など)を事前に設計したいとの要望があった。
 本開示の目的は、機器に取付けられるケーブルの引き回しを事前に設計することを可能にするシミュレーション装置およびシミュレーションプログラムを提供することである。
 本開示にかかるシミュレーション装置は、機器に取付けられるケーブルの挙動を算出するシミュレーション装置であって、機器に対応する仮想空間に配置された第1の対象の挙動に基づき、ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する仮想空間に配置された第2の対象の挙動を算出するケーブル挙動算出部と、ケーブル挙動算出部により算出された第2の対象の挙動を、当該挙動に基づき評価する評価部とを備える。
 上述の開示によれば、機器の挙動に基づき、ケーブルの取付けに関するパラメータを用いてケーブルの挙動を算出できて、算出された挙動を評価することで、評価された当該取付けに関するパラメータから、ケーブルの引き回しを設計できる。
 また、シミュレーションでは、ケーブルが取付けられるべき実機なしに、当該シミュレーションを実施して、ケーブル引回しを設計することができる。
 上述の開示において、第1の対象の挙動は、所定のタイムステップ毎に算出された挙動を含み、ケーブル挙動算出部は、タイムステップ毎に、当該タイムステップに対応の第1の対象の挙動に基づき、パラメータを用いて、第2の対象の挙動を算出する。
 上述の開示によれば、タイムステップ毎に算出される機器の挙動に基づき、タイムステップ毎にケーブルの挙動を算出することができる。
 上述の開示において、ケーブル挙動算出部は、物理シミュレータを含む。
 上述の開示によれば、ケーブルの挙動を、物理シミュレータで算出することができる。
 上述の開示において、第2の対象は、隣接する剛体間をジョイントで接合して連ねられてモデル化された剛体リンクを含み、物理シミュレータは、モデル化された剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、第1の対象の挙動に基づいて実施することにより、第2の対象の挙動を算出する。
 上述の開示によれば、ケーブルを拘束条件が課された剛体リンクにモデル化し、当該モデルを示す方程式により挙動を算出することができる。
 上述の開示において、シミュレーション装置は、ケーブル挙動算出部により算出された第2の対象の挙動に基づき、当該第2の対象にかかる負荷を算出する負荷算出部を、さらに備える。
 上述の開示によれば、算出された挙動に基づき、第2の対象にかかる負荷を算出することができる。
 上述の開示において、負荷は、第2の対象が備える各剛体にかかる負荷を含む。
 上述の開示によれば、各剛体にかかる負荷を算出することができる。
 上述の開示において、シミュレーション装置は、タイムステップの時系列に従い、各タイムステップで算出された第2の対象の挙動に基づく負荷を表示する。
 上述の開示によれば、タイムステップの時系列に従い、第2の対象にかかる負荷の変動を表示することができる。
 上述の開示において、シミュレーション装置は、閾値を超える負荷の表示態様を変更する。
 上述の開示によれば、閾値を超える負荷は、その表示態様を変更して提示することができる。
 上述の開示において、評価部は、負荷算出部により算出された負荷に基づき、第2の対象の挙動を評価する。
 上述の開示によれば、第2の対象の挙動の評価を、負荷に基づき評価することができる。
 上述の開示において、シミュレーション装置は、パラメータを設定するパラメータ設定部を備え、負荷が所定条件を満たすとき、第2の対象の挙動の算出時に設定されたパラメータを出力する。
 上述の開示によれば、シミュレーション実施時にはパラメータを設定(変更)することができて、負荷が所定条件を満たす時は、その挙動算出に用いたパラメータを出力することができる。
 上述の開示において、パラメータは、ケーブルの長さまたはケーブルの取付け位置を含む。
 上述の開示によれば、パラメータに、ケーブル長と取付け位置を含めることができる。
 上述の開示において、パラメータは、ケーブルの硬さを表すパラメータを含む。
 上述の開示によれば、パラメータに、機器に取付けられるべきケーブルの硬さを含めることができる。
 上述の開示において、機器は、ロボットを含み、第1の対象の挙動は、前ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出される。
 上述の開示によれば、ロボットに取付けられるケーブルについての挙動のシミュレーションを、ロボットプログラムのエミュレータで算出される第1の挙動に基づき実施することができる。
 上述の開示において、仮想空間をビジュアル化した画像を生成する画像生成部を、さらに備える。
 上述の開示によれば、シミュレーションされたオブジェクト配置の仮想空間を視覚化してユーザーに提供することができる。
 本開示にかかるシミュレーションプログラムは、コンピュータに、機器に取付けられるケーブルの挙動を算出する方法を実行させるシミュレーションプログラムである。この方法は、機器に対応する仮想空間に配置された第1の対象の挙動に基づき、ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する仮想空間に配置された第2の対象の挙動を算出するステップと、算出された第2の対象の挙動を、当該挙動に基づき評価するステップとを備える。
 上述の開示によれば、シミュレーションプログラムが実行されることにより、機器の挙動に基づき、ケーブルの取付けに関するパラメータを用いてケーブルの挙動を算出できて、算出された挙動を評価することで、評価された当該取付けに関するパラメータから、ケーブルの引き回しを設計できる。また、ケーブルが取付けられるべき実機なしに、当該シミュレーションを実施して、ケーブル引回しを設計することができる。
 本開示によれば、機器に取付けられるケーブルの引き回しを事前に設計することができる。
本実施の形態にかかるケーブルシミュレーション装置1Bの適用場面の一例を模式的に示す図である。 本実施の形態にかかるシミュレーション装置1によってシミュレーションされる機器を模式的に示す図である。 本実施の形態にかかる制御システム2のユニット構成の一例を示す模式図である。 本実施の形態にかかるシミュレーション装置1を実現するためのハードウェア構成の一例を示す模式図である。 本実施の形態にかかるシミュレーション装置1を実現するための機能構成の一例を示す模式図である。 本実施の形態にかかるケーブルシミュレーション装置1Bの処理のシーケンスの一例を模式的に示す図である。 本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の一例を模式的に示す図である。 本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の他の例を模式的に示す図である。 本実施の形態にかかるケーブルシミュレーションのデータの関連性をケーブルデータ146を用いて模式的に示す図である。 本実施の形態にかかるケーブルの物理シミュレーションモデルの一例を模式的に示す図である。 図10のケーブルの物理シミュレーションモデルの連立方程式147の一例を示す図である。 本実施の形態にかかる物理シミュレーションの位置の更新を模式的に示す図である。 本実施の形態にかかるケーブルシミュレーションと、それに関連する処理を概略的に示すフローチャートである。 本実施の形態にかかる負荷情報142の一例を模式的に示す図である。 本実施の形態にかかる評価処理のフローチャートである。 本実施の形態にかかる負荷情報142の表示画面の一例を示す図である。
 以下に、図面を参照しつつ、各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
 <A.適用例>
 本発明が適用される場面の一例について説明する。図1は、本実施の形態にかかるケーブルシミュレーション装置1Bの適用場面の一例を模式的に示す図である。図1を参照して、ケーブルシミュレーション装置1Bは、FAの生産ラインに備えられる機器の一例であるロボット30に取付けられ得るケーブルの挙動を算出(推定)する。なお、ケーブルが取付けられる機器は、ロボット30に限定されない。また、ロボット30は、限定されないが、例えば多関節で構成されるアーム301を備える。ロボット30は、先端のアーム301に、コネクタ7によって脱着自在に装着されるロボットハンド210を備える。アーム301には、それぞれ、ケーブル341、342および343が、ロボット30(アーム301)の表面306(図10)のケーブルガイド350,351、352および353を用いて取付けられる。ケーブルガイド350は、ロボットハンド210に取付けられている。ケーブル341は、ケーブルガイド350と351の間に取付けられて、ケーブル342は、ケーブルガイド351と352の間に取付けられて、ケーブル343は、ケーブルガイド352と353の間に取付けられる。
 ケーブル341、342および343は、同様の特徴(形状、材料など)を有するので、これらに共通する説明においては、ケーブル340と総称する。ケーブル340は、例えば、信号線を構成する線状の導電体を絶縁体で被覆して構成される。絶縁体の材料としては、限定されないが、プラスチック、ゴム、ビニールなどの樹脂材料を用いることができる。また、導電体の材料としては、限定されないが、電気導電性を有する金属を用いることができる。ケーブル340は、空気などの気体を流通させるエアケーブルを含む。また、ケーブルガイド350、351、352および353は、同様の特徴(形状、材料など)を有するので、これらに共通する説明においては、ケーブルガイド350と総称する。ケーブル340が、ケーブルガイド350を介してロボット30に取付けられることで、ロボットコントローラ310などの他の機器はケーブル340を介してロボット30との間で信号を遣り取りすることが可能となる。
 一般にロボット用のケーブル340は高価であること、また上記に述べたように引き回し作業は長時間を要することに鑑みると、実機のロボット30に取付けられるケーブル340の適切な引き回しを事前に設計し、その設計結果に基づき、作業者がケーブル340の引き回しを実施すれば、ケーブル340の引き回しにかかるコスト(ケーブル340の費用および作業時間を含む)を低減できる。ケーブルシミュレーション装置1Bによってケーブルシミュレーションを実施することで、この事前設計が実現される。
 具体的には、ケーブルシミュレーション装置1Bは、ロボット30に取付けられるケーブル340に対応するオブジェクト(以下、第2の対象とも呼ぶ)の3次元仮想空間における挙動を算出(推定)するケーブルシミュレータ165と、算出された当該挙動を評価する評価モジュール167とを備える。この3次元仮想空間は、図1では、例えば直交するX軸,Y軸およびZ軸で規定される。ケーブルシミュレーション装置1Bは、例えば汎用コンピュータで構成される情報処理装置100に実装され得て、情報処理装置100が、所定のプログラムを実行することによりケーブルシミュレータ165および評価モジュール167が実現される。
 ケーブルシミュレーションは、機器挙動データ2520に基づいて、第2の対象の挙動を算出する。機器挙動データ2520は、ロボット30に対応するオブジェクト(以下、第1の対象とも呼ぶ)であって、ケーブル340のオブジェクトが配置される3次元仮想空間と同一の空間に配置されるオブジェクトの挙動を示す。この第1の対象は、限定されないが、例えば、ロボット30および当該ロボット30に装着されたロボットハンド210に対応するオブジェクトを含む。
 ここでは、機器挙動データ2520は、情報処理装置100により算出される、または外部の装置からケーブルシミュレーション装置1Bに提供される。機器挙動データ2520は、ケーブルシミュレーション装置1Bに提供される。機器挙動データ2520は、例えば、所定のタイムステップti(i=1,2,3,・・・)毎に、第1の対象の3次元仮想空間における挙動を算出するシミュレーションが実行されることによって、算出される。機器挙動データ2520が示す第1の対象の挙動は、第1の対象の3次元仮想空間において時系列に変化する位置を含む。
 ケーブルシミュレータ165は、「ケーブル挙動算出部」の一実施例である。ケーブルシミュレータ165は、機器挙動データ2520が示す第1の対象の挙動、すなわち3次元仮想空間における時系列の位置に基づき、ケーブル340のロボット30への取付けに関するケーブルパラメータ139を用いて、上記の所定のタイムステップtiに同期して、同一の3次元仮想空間に配置された第2の対象の挙動を算出する。ケーブルパラメータ139は、ケーブル340の引き回しの設計において考慮されるべき種類のパラメータであって、例えば、ケーブル340の長さ、ケーブル340の取付け位置(すなわち、ケーブルガイド350の位置)などを含むが、これらに限定されない。例えば、挙動に影響を及ぼすようなパラメータ、例えばケーブル340の材料に依存するパラメータ(例えば、ケーブル340の硬さを表すパラメータ)を含んでもよい。
 ケーブルシミュレーションによって、3次元仮想空間におけるケーブル340に対応するオブジェクト(第2の対象)の、ロボット30に対応するオブジェクト(第1の対象)の挙動に同期した挙動が算出される。ケーブル340に対応するオブジェクト(第2の対象)の挙動は、3次元仮想空間におけるX,Y,Zの各軸における当該オブジェクトの位置と姿勢を含む。この姿勢は、例えばX軸、Y軸およびZ軸についての加速度成分であるロール角α、ピッチ角βおよびヨー角γの組合せで示される。
 評価モジュール167は、「評価部」の一実施例である。評価モジュール167は、ケーブルシミュレータ165が算出した第2の対象の挙動に基づき、当該挙動を評価する。評価モジュール167は、例えば、第2の対象の挙動から算出される第2の対象にかかる負荷、より特定的には挙動に影響を及ぼすような負荷に基づき、当該挙動を評価する。このような負荷は、ケーブルシミュレーション装置1Bが備える負荷算出モジュール166によって算出される。
 負荷算出モジュール166は、「負荷算出部」の一実施例である。負荷算出モジュール166は、タイムステップti毎に、第2の対象の挙動に基づき負荷を算出する。負荷の種類は、限定されないが、例えば第2の対象の伸び、曲げおよびひねり、および第2の対象の衝突回数、衝突した場合に第2の対象に加わる力等の少なくとも1つを含み得る。さらに、負荷の種類は、曲げ半径が最小曲げ半径(ケーブル340の仕様によって指定された値)を超えないか否かの値を含んでもよい。
 評価モジュール167は、算出される負荷が所定条件を満たすと判定したとき、ケーブルシミュレーションにおいて設定されたパラメータが示すケーブル340の長さおよび取付け位置(すなわち、ケーブルガイド350の位置)は、最適な引き回しを実現できる設計値として評価する。ケーブルシミュレーション装置1Bは、評価の情報を出力し、または格納し、または通信する。
 ケーブルシミュレーションでは、3次元仮想空間における、ロボット30に対応の第1の対象の挙動を示す機器挙動データ2520に基づき、取付けに関するパラメータを用いて、ケーブル340に対応する第2の対象の挙動が算出され、算出された第2の対象の挙動が評価される。評価によって、ケーブルシミュレーションに適用したパラメータが示すケーブル340の引き回しの設計値が適切であるか否かを示すことができる。したがって、実機(ロボット30、ケーブル340およびケーブルガイド350)がなくても、ケーブル340の引き回しにかかる最適な設計を実施することが可能となる。
 以下、本実施の形態のより具体的な応用例について説明する。
 <B.制御システムの例>
 図2は、本実施の形態にかかるシミュレーション装置1によってシミュレーションされる機器を模式的に示す図である。シミュレーション装置1は、FAの生産ラインに備えられる制御システム2のPLC(プログラマブルロジックコントローラ)200が制御する実機である機器の挙動を推定するシステムシミュレーション装置1Aを備える。シミュレーション装置1は、たとえば、PC(Personal Computer)、タブレット端末などの端末装置を含む汎用コンピュータで構成される情報処理装置100に実装され得て、情報処理装置100が、所定のプログラムを実行することにより、機器の挙動を推定するシステムシミュレーションが実現される。情報処理装置100は、ユーザーが制御システム2を運用するのを支援するための支援ツールを提供する。支援ツールは、シミュレーションの実行環境、制御システム2のための制御プログラムの実行環境、および制御システム2の通信環境等を準備するための設定ツールを含む。支援ツールは、例えばUI(User Interface)によってユーザーに提供される。
 図2では、情報処理装置100は、PLC200に通信可能に接続されているが、PLC200と接続されない態様で、シミュレーションを実施することもできる。また、上記に述べたケーブルシミュレーション装置1Bは、シミュレーション装置1に備えられ得る。その場合は、シミュレーション装置1によってケーブルシミュレーションとシステムシミュレーションとを実施可能な環境が提供される。
 図2を参照して、制御システム2は、PLC200、ロボットコントローラ310およびサーボモータドライバ531,532を含む。PLC200、ロボットコントローラ310およびサーボモータドライバ531,532は、フィールドネットワーク22を介してデイジーチェーンで接続されている。フィールドネットワーク22には、たとえば、EtherCAT(登録商標)が採用される。但し、フィールドネットワーク22は、EtherCATに限定されない。PLC200には、ネットワーク80を介して情報処理装置100が接続され得る。ネットワーク80には、有線または無線の任意の通信手段が採用され得る。PLC200および情報処理装置100は、例えばUSB(Universal Serial Bus)に従い通信する。
 PLC200は、設計された制御プログラムをフィールドネットワーク22からのセンサの出力値などを含むフィールド値に基づき実行し、実行の結果に従ってロボットコントローラ310またはサーボモータドライバ531,532に対して、それぞれ目標値を与えることで、ロボット30およびコンベア230の搬送に関連する機器などを制御する。
 サーボモータドライバ531,532は、コンベア230のサーボモータ41,42を駆動する。サーボモータ41,42の回転軸にはエンコーダ236,238が配置されている。当該エンコーダは、サーボモータ41,42のフィードバック値として、サーボモータの位置(回転角度)、回転速度、累積回転数などをPLC200へ出力する。
 ロボット30とコンベア230は、相互に連携しながらワーク232を移動させる。なお、ここでは説明を簡単にするために、ワーク232の移動を説明するが、移動に限定されない。例えば、トレイ9に載置されたワーク232のロボット30による加工であってもよい。
 図2では、ロボット30のドライブ装置の一例として、ロボット30に設けられるサーボモータ1301、1302,1033,1304(以下、「ロボットサーボモータ」とも総称する。)と、ロボットサーボモータを駆動するロボットコントローラ310を例示する。同様に、コンベア230のドライブ装置の一例として、コンベア230に設けられるサーボモータ41,42を駆動するサーボモータドライバ531,532を例示する。
 ロボットコントローラ310は、ロボット30のロボットサーボモータを駆動する。各ロボットサーボモータの回転軸にはエンコーダ(図示しない)が配置されている。当該エンコーダは、ロボットサーボモータのフィードバック値として、サーボモータの位置(回転角度)、回転速度、累積回転数などをロボットコントローラ310へ出力する。
 サーボモータドライバ531,532は、指令値に従い、対応するサーボモータ41,42を駆動する。制御システム2は、さらに、コンベア230に関連して光電センサ6および開閉可能なストッパ8を備える。光電センサ6は、コンベア230の搬送面上に備えられるトレイ9が所定のワークトラッキングエリアの前に到達したことを検出し、検出値をPLC200に送信する。ストッパ8は、指令値に従い、トラッキングエリア内に到達したトレイ9を停止(固定)させるように閉動作する。
 ロボット30のロボットハンド210は、工程に応じて取付けられる。ロボットハンド210の種類は、例えば平行ハンド、多指ハンド、多指関節ハンドなどを含むが、これら限定されず、例えば吸着式によりワーク232をピックおよびプレースする種類も含み得る。
 ロボット30は、ロボットコントローラ310からの指令値に従い、ピックアンドプレースを実施する。具体的には、ロボット30は、コンベア230上のトレイ9に載置されたワーク232をロボットハンド210によりピックし、ピックしたまま所定位置のテーブル55までワーク232を移動させてテーブル55上に置く(プレースする)。ロボットハンド210は、ロボットコントローラ310からの指令値に従い、ワーク232をピックまたはプレースするためのハンドの開閉動作が制御される。
 システムシミュレーション装置1Aが実施するシミュレーションによって、その挙動が推定される機器として、ワーク232を搬送するコンベア230と、ワーク232を取り扱うロボット30(ロボット30およびロボットハンド210)などの機器を例示するが、挙動が推定される機器はこれらに限定されない。ケーブルシミュレーション装置1Bは、システムシミュレーションによって算出(推定)された機器の挙動に基づき、ケーブルの挙動を算出(推定)する。
 情報処理装置100により、制御プログラムは、このようなシミュレーションの結果を用いて設計されてもよい。情報処理装置100上で設計された制御プログラムは、フィールドネットワーク22を介してPLC200に送られる。
 <C.制御と3次元仮想空間の位置>
 図2を参照して、システムシミュレーションの対象機器であるロボット30とコンベア230の制御と、これら機器の3次元仮想空間における挙動について説明する。
 ロボット30とコンベア230は、上記に述べたように、複数の駆動軸により移動可能な可動部を有する。これらの各駆動軸は、サーボモータによって駆動される。具体的には、ロボット30は、ロボットサーボモータ(サーボモータ1301~1304)が回転することで駆動される複数のアームを有している。ロボットサーボモータは、それぞれ回転することで、対応する各アームを駆動する。ロボットコントローラ310がロボットサーボモータの駆動を制御することで、各アームが3次元に駆動される。このような各アームの駆動により、ロボット30の挙動が実現される。同様に、コンベア230も、サーボモータ41,42が回転することでコンベア230および搬送面上のトレイ9が移動する。この移動量(移動の速度、向き、距離など)は、サーボモータ41,42の回転量(回転の向き、角度)により決まる。このようなサーボモータ41,42の駆動により、コンベア230およびトレイ9などの機器の挙動が実現される。
 実施の形態では、ロボット30の各アーム301は、仮想的な軸が対応付けられ、各軸の位置からロボット30の位置が決まる。PLC200は、ロボット30を各軸の時系列に変換する目標位置に従い制御し、これにより、各アーム301の移動の速度および軌道は、目標に従う速度および軌道となるように変化する。
 ロボット30の目標位置は、例えばPLC200に予め格納されている。ロボットコントローラ310は、PLC200から目標位置を受信し、受信した目標位置に基づき各ロボットサーボモータの回転量を決定し、決定した回転量を指定する指令値を、各ロボットサーボモータに対し出力する。
 (c1.3次元仮想空間の座標系)
 本実施の形態にかかるロボット30の各アーム301に相当する軸の3次元仮想空間における位置を算出する過程の一例を説明する。本実施の形態では、3次元仮想空間における座標系をロボット30およびPLC200などの各部が共通して備えるワールド座標系を例示する。ワールド座標系における位置を算出する際に、本実施の形態では、サーボモータ1301の回転量をαA、サーボモータ1302の回転量をαB、サーボモータ1303の回転量をαCおよびサーボモータ1304の回転量をαDとして示す。サーボモータ回転量(αA、αB、αC、αD)それぞれに対し、所定関数を用いて演算を施すことで、サーボモータ回転量(αA、αB、αC、αD)それぞれを、3次元仮想空間における位置に変換することができる。例えばワーク232をピックする各アーム301の軸の3次元座標P(x、y、z)が算出されると、各アーム301の3次元座標P(x、y、z)の時系列の変化によりロボット30に対応するオブジェクトの3次元仮想空間における挙動を示すことができる。本実施の形態では、システムシミュレーション装置1Aが、機器(より特定的には、ロボット30)に対応する3次元仮想空間に配置される第1の対象の挙動(3次元座標P(x、y、z)の時系列の変化)を算出し、算出結果である機器挙動データ2520を出力する。
 システムシミュレーション装置1Aは、ワーク232およびワーク232を搬送するコンベア230に対応するオブジェクトの3次元仮想空間における挙動も、ロボット30と同様に算出し、算出結果を機器挙動データ2520として出力することができる。
 さらに、制御システム2では機器は互いに時刻同期する。具体的には、フィールドネットワーク22に接続される複数の機器、すなわちPLC100、ロボットコントローラ310、サーボモータドライバ531,532およびロボットハンド210は、互いに時刻同期されたタイマ90、91,92,93、94をそれぞれ有し、機器の間では、これらタイマに基き動作することで、制御指令を含むデータの送受信タイミングが同期されている。
 <D.制御システムの全体構成>
 図3は、本実施の形態にかかる制御システム2のユニット構成の一例を示す模式図である。図3を参照して、制御システム2は、PLC200と、PLC200とフィールドネットワーク22を介して接続されるサーボモータドライバ531,532およびリモートIOターミナル5と、ケーブル340を接続するロボットコントローラ310と、フィールドに設けられたIOデバイスである例えば、光電センサ6、ストッパ8が備える近接センサ87およびエンコーダ236、238を含む。
 PLC200は、主たる演算処理を実行する演算ユニット13、1つ以上のIOユニット14および特殊ユニット17を含む。これらのユニットは、システムバス81を介して、データを互いに遣り取りできるように構成されるとともに、電源ユニット12から電源が供給される。演算ユニット13には、情報処理装置100が接続され得る。
 IOユニット14は、光電センサ6、ストッパ8の近接センサ87、エンコーダ236,238などを含むIOデバイスから検出値61、71および237および239を収集する。近接センサ87は、ストッパ8に対するトレイ9が所定距離まで接近したことを非接触で検出する。各IOデバイスからの検出値は、例えばIOユニット14が備えるメモリに設定(書込)される。演算ユニット13は、IOユニット14により収集された値を用いて制御プログラムの演算を実行し、演算結果の値をIOユニット14のメモリに設定(書込)する。周辺機器またはIOデバイスは、IOユニット14のメモリの値を参照して動作する。
 フィールドネットワーク22は、ロボットコントローラ310、サーボモータドライバ531,532、およびリモートIOターミナル5が接続されてもよい。IOリモートターミナル5は、フィールドネットワーク22でのデータ伝送にかかる処理を行うための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、リモートIOターミナルバス51を介して、データを互いに遣り取りできるように構成される。
 サーボモータドライバ531,532は、フィールドネットワーク22を介して演算ユニット13と接続されるとともに、演算ユニット13からの指令値に従ってサーボモータ41,42を駆動する。演算ユニット13は、これら指令値を、エンコーダ236,238からの検出値237,239に基き生成する。
 演算ユニット13は、上記に述べたIOデバイスからの検出値を参照して、所定の制御プログラムを実行することで、ロボット30にピックアンドプレースを実施させる。具体的には、演算ユニット13は、光電センサ6の検出値61および近接センサ87の検出値71からワーク232が、所定のトラッキングエリアに接近したことを検出すると、ピックアンドプレースを実施させるロボットのアーム301のための制御指令211と、ロボットハンド210のための制御指令222を生成し、ロボットコントローラ310を介してケーブル340を経由してロボット30に出力する。
 <E.ハードウェア構成>
 次に、本実施の形態にかかるシミュレーション装置1のハードウェア構成の一例について説明する。
 図4は、本実施の形態にかかるシミュレーション装置1を実現するためのハードウェア構成の一例を示す模式図である。本実施の形態では、シミュレーション装置1は、図4に示すような情報処理装置100に実装され得る。具体的には、情報処理装置100のプロセッサ102が必要なプログラムを実行することでシミュレーション装置1が実現される。図4では、シミュレーション装置1がシステムシミュレーションおよびケーブルシミュレーションを実施する環境を備えている。
 情報処理装置100は、主たるコンポーネントとして、オペレーティングシステム(OS:Operating System)および後述するような各種プログラムを実行するプロセッサ102と、プロセッサ102でのプログラム実行に必要なデータを格納するための作業領域を提供する主メモリ104と、キーボードやマウスなどのユーザー操作を受付ける操作ユニット106と、ディスプレイ109、各種インジケータ、プリンタなどの処理結果を出力する出力ユニット108と、ネットワーク80を含む各種ネットワークに接続されるネットワークインターフェイス110と、光学ドライブ112と、外部装置と通信するローカル通信インターフェイス116と、ストレージ111とを含む。これらのコンポーネントは、内部バス118などを介してデータ通信可能に接続される。
 情報処理装置100は、光学ドライブ112によって、コンピュータ読取可能なプログラムを非一過的に格納する光学記憶媒体(例えば、DVD(Digital Versatile Disc)など)を含むコンピュータ読取可能な記憶媒体114から、各種プログラムまたはデータを読取ってストレージ111などにインストールする。
 情報処理装置100で実行される各種プログラムまたはデータは、コンピュータ読取可能な記憶媒体114を介してインストールされてもよいが、ネットワーク上の図示しないサーバ装置などからネットワークインターフェイス110を介してダウンロードする形でインストールするようにしてもよい。
 ストレージ111は、例えば、HDD(Hard Disk Drive)またはSSD(Flash Solid State Drive)などで構成され、プロセッサ102で実行されるプログラムを格納する。具体的には、ストレージ111は、本実施の形態にかかるシミュレーションを実現するためのシミュレーションプログラムとして、仮想時刻生成プログラム120、中継プログラム121、物理シミュレーションプログラム122、PLCシミュレーションプログラム126、ロボットエミュレーションプログラム130、統合プログラム134およびケーブルシミュレーションプログラム137を格納する。ストレージ111は、さらに、3次元仮想空間に配置されたオブジェクトを表示する画像を生成する画像処理プログラム136、評価プログラム143およびパラメータ設定プログラム145を格納する。
 ケーブルシミュレーションプログラム137は、実行されると、ケーブル340に対応するオブジェクトの3次元仮想空間における挙動を算出する。ケーブルシミュレーションプログラム137は、負荷算出プログラム138を含んでいる。負荷算出プログラム138は、実行されると、ケーブルシミュレーションプログラム137によって算出された挙動に基づき、ケーブル340かかる負荷を算出する。なお、負荷算出プログラム138は、ケーブルシミュレーションプログラム137が備えるとしているが、ケーブルシミュレーションプログラム137の実行タイミングに依存しない、すなわちケーブルシミュレーションプログラム137から独立したプログラムであってもよい。
 評価プログラム143は、ケーブルシミュレーションプログラム137が算出したケーブル340に対応するオブジェクトの挙動に基づき、当該挙動を評価する。より特定的には、評価プログラム143は、後述する負荷情報142に基づき、当該挙動を評価し、評価結果を示す評価データ144を出力する。評価データ144は、ストレージ111に格納され得る。
 パラメータ設定プログラム145は、例えば、情報処理装置100に対するユーザー操作内容に基づきケーブルパラメータ139をストレージ111に格納する。
 仮想時刻生成プログラム120は、シミュレーションのための仮想時刻を生成する。シミュレーション装置1は、仮想時刻に基づく周期でシミュレーションを実行する。
 物理シミュレーションプログラム122は、ワーク232の移動に関連して動作する機器に対応するオブジェクトの挙動を算出する。物理シミュレーションプログラム122により対応するオブジェクトの挙動が算出される機器は、例えば、ワーク232の搬送または移動に関連する光電センサ6、コンベア230、トレイ9、ストッパ8およびロボットハンド210を含む。物理シミュレーションプログラム122には、このような機器に対応したオブジェクトの挙動を規定するためのパラメータ、および、ワーク232の重さまたは形状などを規定するパラメータを含む、物理シミュレーションパラメータ124が与えられる。物理シミュレーションパラメータ124の値は、ユーザー操作または統合プログラム134などにより適宜変更されるようにしてもよい。
 物理シミュレーションパラメータ124として、ワーク232の搬送または移動に関連した機器およびワーク232のCAD(Computer Aided Design)データを用いてもよい。CADデータを用いることで、オブジェクトを用いて現実の機器の挙動をより正確に再現できる。
 PLCシミュレーションプログラム126は、物理シミュレーションプログラム122により対応のオブジェクトの挙動が算出される機器およびワーク232の位置を算出する。算出された位置は、物理シミュレーションプログラム122に与えられる。PLCシミュレーションプログラム126には、上記の位置を算出するために必要なパラメータを含むPLCパラメータ128が与えられる。
 ロボットエミュレーションプログラム130は、ロボット30の挙動をオブジェクトによって再現するシミュレータとして機能する。ロボットエミュレーションプログラム130は、物理シミュレーションプログラム122によって算出される結果(オブジェクトの挙動)に基づいて、ロボット30によるワーク232のピックアンドプレースを再現する。ロボットエミュレーションプログラム130には、ロボット30の挙動を対応するオブジェクトで再現するために必要なパラメータを含むロボットパラメータ132が与えられる。
 中継プログラム121は、物理シミュレーションプログラム122とロボットエミュレーションプログラム130とが互いのデータを遣り取りするための中継機能を提供する。中継プログラム121は、限定されないが、中継機能は、例えばスクリプトの命令で記述されている。
 統合プログラム134は、物理シミュレーションプログラム122と、PLCシミュレーションプログラム126と、ロボットエミュレーションプログラム130と、中継プログラム121とを互いに連携させるための処理を実行する。具体的には、統合プログラム134は、典型的には主メモリ104上に、3次元仮想空間のオブジェクトの状態を記述する仮想空間情報105を生成および更新する。物理シミュレーションプログラム122、PLCシミュレーションプログラム126、および、ロボットエミュレーションプログラム130は、仮想空間情報105を参照(読出)して各シミュレーションの処理を実行するとともに、その実行結果のうち必要な情報を仮想空間情報105に反映する。統合プログラム134が提供する機能により、ワーク232を搬送する機器と、ピックアンドプレースによりワーク232を移動させるロボット30とを備える制御システム2における、機器の挙動および処理を再現する。
 画像処理プログラム136は、ディスプレイ109に表示するための3D(three-dimensional)ビジュアライズデータ135が与えられる。3Dビジュアライズデータ135は、挙動データ252と画像データ253を含む。画像データ253は、シミュレートされる機器に対応のオブジェクトを描画するための機器画像データ2530およびケーブル340に対応のオブジェクトを描画するためのケーブル画像データ2531を含む。ケーブル画像データ2531は、剛体304(後述する)のオブジェクトに対応する画像データを含んでいる。
 挙動データ252は、仮想空間情報105の各機器の位置に所定関数を用いて算出された位置である3次元座標P(x,y,z)およびその時系列データを含む機器挙動データ2520およびケーブル挙動データ2521を含む。ケーブル挙動データ2521は、ケーブルシミュレータ165が機器挙動データ2520のデータに基づき算出した、ケーブル340に対応する3次元仮想空間に配置されたオブジェクトの挙動を示す。
 画像処理プログラム136は、機器画像データ2530および機器挙動データ2520を用いて、ワーク232と、ワーク232の搬送に関連する機器およびロボット30と、ロボット30に取付けられたロボットハンド210とに対象の各オブジェクトの挙動を、3次元仮想空間内で立体的に描画するための画像データを生成し、ディスプレイ109に出力する。また、画像処理プログラム136は、ケーブル画像データ2531およびケーブル挙動データ2521を用いて、ケーブル340に対応するオブジェクトの挙動を、3次元仮想空間内で立体的に描画するための画像データを生成し、ディスプレイ109に出力する。
 これにより、ディスプレイ109には、シミュレーションにより算出された挙動に従いオブジェクトが表示されて、制御システム2の機器の挙動が再現され、また、機器の挙動に連動したケーブル340の挙動が再現される。なお、画像データ253は、CAD(Computer-Aided Design)データなどを含んでもよい。
 ストレージ111は、ケーブルシミュレーションプログラム137のパラメータであるケーブルパラメータ139および負荷情報142を格納する。ケーブルパラメータ139は、ケーブルシミュレーションの実行開始時に用いられるパラメータの初期値140と、候補値141を含む。候補値141は、ケーブルシミュレーションで用いられるパラメータであって、一般的に初期値140とは異なる値を示す。負荷情報142は、負荷算出プログラム138が実行されることにより算出された負荷を示す。ケーブルパラメータ139は、ケーブル340の材料に固有のパラメータであって、ケーブル340の硬さを示すパラメータ149、例えば後述するパラメータStiffnessおよびパラメータDampingを含む。
 図4には、単一の情報処理装置100でシミュレーション装置1を実現する例を示したが、複数の情報処理装置を連係させてシミュレーション装置1を実現するようにしてもよい。この場合には、シミュレーション装置1を実現するために必要な処理の一部を情報処理装置100で実行させるとともに、残りの処理をネットワーク上のサーバ(クラウド)などで実行するようにしてもよい。
 図4は、プロセッサ102が1または複数のプログラムを実行することで、シミュレーション装置1が実現される例を示すが、シミュレーション装置1を実現するために必要な処理および機能の一部を、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)などの回路を用いて実装するようにしてもよい。
 <F.機能構成>
 次に、本実施の形態にかかるシミュレーション装置1の機能構成の一例について説明する。図5は、本実施の形態にかかるシミュレーション装置1を実現するための機能構成の一例を示す模式図である。図5に示す機能は、典型的には、情報処理装置100のプロセッサ102がプログラム(仮想時刻生成プログラム120、中継プログラム121、物理シミュレーションプログラム122、PLCシミュレーションプログラム126、ロボットエミュレーションプログラム130、統合プログラム134、画像処理プログラム136、ケーブルシミュレーションプログラム137、評価プログラム143およびパラメータ設定プログラム145など)を実行することで実現される。シミュレーション装置1は、システムシミュレーション装置1Aおよびケーブルシミュレーション装置1Bのための機能と、システムシミュレーションおよびケーブルシミュレーションの実行周期を生成する周期生成モジュール154と、シミュレーション結果に基づき3次元仮想空間にオブジェクトを描画するための3Dビジュアライザ164を備える。3Dビジュアライザ164は、画像処理プログラム136が実行されることにより実現される機能を含み得る。
 (f1.システムシミュレーション装置の構成)
 図5を参照して、システムシミュレーション装置1Aは、仮想空間情報管理モジュール150と、PLCシミュレータ152と、ワーク挙動シミュレータ155と、物理シミュレータ156と、中継モジュール158と、ロボットエミュレータ160と、ワークトラッキングモジュール162と、3Dビジュアライザ164とを含む。
 仮想空間情報管理モジュール150は、統合プログラム134(図4)が実行されることで実現され、シミュレーションが実施される3次元仮想空間の各オブジェクトの挙動(位置および姿勢など)の情報を規定するための仮想空間情報105を管理する。
 PLCシミュレータ152は、PLCシミュレーションプログラム126(図4)が実行されることで実現され、物理シミュレーションパラメータ124に従って、ワーク232の搬送に関連する機器に対応のオブジェクトの挙動を算出する。PLCシミュレータ152により算出される情報は、仮想空間情報105に反映される。
 PLCシミュレータ152は、ワーク232の搬送にかかる機器の挙動を推定するプログラムであって、PLCプログラムに含まれた複数の命令を含むシミュレーションプログラムに相当する。これら複数の命令は、PLCプログラムに含まれた搬送にかかる機器の挙動を制御するための命令群を含み得る。PLCプログラムは、例えばサイクリック実行型言語(例えば、ラダー言語)で記載されたプログラム言語)で記述される。
 PLCシミュレータ152のこれら命令は、仮想空間情報105のデータに基づき実行される毎に、例えばコンベア230のサーボモータ41,42を制御するための指令値が生成されて、仮想空間情報105に格納される。
 中継モジュール158は、ワーク232の画像計測パラメータ129を用いた計測処理によるワーク232の計測結果をロボットエミュレータ160に出力する。ロボットエミュレータ160は仮想空間に配置されたワークを搬送するロボット30の挙動を、中継モジュール158からの計測結果に応じて、再現する。ロボットエミュレータ160により算出されるロボット30の挙動の情報は、仮想空間情報105に反映される。ロボットエミュレータ160は、ロボットエミュレーションプログラム130が実行されることにより実現される。ロボットエミュレータ160は、3次元仮想空間に配置されたワーク232を移動させるロボット30の挙動を示す機器挙動データ2520を出力する。ロボットエミュレータ160は、ロボット30のアーム301およびその先端に取付けられたロボットハンド210を一体的な剛体とみなしてシミュレーションを実施する。
 具体的には、ロボットエミュレーションプログラム130は、ロボットコントローラ310のプログラムに含まれる命令群を含む。この命令群は、ロボット30にワーク232を操作させる指令コードを有したロボットプログラムの指令を含む。これら指令は、仮想空間情報105のPLCシミュレータ152の出力データなどに基づき、ロボット30の目標の軌跡を算出し、算出された軌跡に基づき各軸の挙動を示す指令値など算出する命令などを含む。
 このように、ロボットエミュレータ160は命令を実行すると、ロボット30の挙動を制御する各軸の指令値を生成し、生成した指令値を仮想空間情報管理モジュール150に出力する。仮想空間情報管理モジュール150は、ロボットエミュレータからの指令値を仮想空間情報105として管理(格納)する。
 ワーク挙動シミュレータ155は、3次元仮想空間に配置された1または複数のワーク232のオブジェクトの挙動を算出する。具体的には、ワーク挙動シミュレータ155は、物理シミュレーションプログラム122(図4)が実行されることで実現され、PLCシミュレータ152によるワーク232の搬送機器に対応するオブジェクトの挙動の情報に応じて、3次元仮想空間に配置されるワーク232の挙動を算出して更新する。ワーク挙動シミュレータ155は、ワーク232の挙動を算出するにあたって、ワーク232の位置、姿勢、移動速度、移動方向などを算出する。ワーク232の位置および姿勢は、ユーザーなどから任意に設定されるワークパラメータに基づいて算出される。ワーク挙動シミュレータ155により算出されるワーク232の位置および姿勢の情報は、仮想空間情報105に反映される。ワークパラメータは、物理シミュレーションパラメータ124に含めることもできる。
 物理シミュレータ156は、物理シミュレーションプログラム122(図4)が実行されることで実現される。物理シミュレータ156は、物理シミュレーションパラメータ124に従い、ワーク232を搬送または移動させるための機器に対応するオブジェクトの挙動(位置、姿勢、移動速度、移動方向など)を算出する。物理シミュレータ156によってシミュレーションされる対象は、光電センサ6、ストッパ8、トレイ9、ロボットハンド210、コンベア230およびワーク232を含む。
 物理シミュレータ156は、これらオブジェクトの位置、姿勢などの挙動を所定の物理演算に従い算出する。物理シミュレータ156は、この物理演算に用いる物理シミュレーションパラメータ124のうち、オブジェクトの質量パラメータ127をゼロに設定して演算を実施する。
 質量をゼロにセットする意味は次の通りである。すなわち、質量のパラメータがゼロでない場合、物理シミュレータ156は物理演算により各オブジェクトについて、当該オブジェクトの質量に基づく速度、加速度および重力などのオブジェクトに対する力学的作用の成分を算出し、その算出された力学的作用の成分によって、物理シミュレータ156が次のタイムステップtiにおけるオブジェクトの位置を計算(更新)することになる。その一方で、本実施の形態では、PLCシミュレータ152およびロボットエミュレータ160が各オブジェクトの位置を決定(支配)することになる。したがって、物理シミュレータ156によるオブジェクトの位置の更新成分をゼロ(無効化)するために、物理シミュレータ156の物理演算に用いる各オブジェクトの質量のパラメータをゼロに設定する。
 物理演算により質量をゼロとして位置(挙動)が算出されたオブジェクトについては速度、加速度、重力などもゼロとなっているから、これらオブジェクトどうしが衝突した場合でも、物理演算では力学的成分(反発などのようなオブジェクトの跳ね返りなどの成分)はゼロ(無効化)と算出されるので、オブジェクトに対する力学的作用を無効化して3次元仮想空間における位置を検出することができる。
 物理シミュレータ156は、物理演算により算出されたロボットハンド210の3次元位置座標P(x、y、z)を、機器挙動データ2520として格納する。物理シミュレータ156は、タイムステップti毎に実行されることにより、機器挙動データ2520は、ロボットハンド210に対応した時系列の3次元座標P(x、y、z)を含む。
 ワークトラッキングモジュール162は、ロボットエミュレーションプログラム130が実行されることで実現される。ワークトラッキングモジュール162は、ロボットエミュレータ160からのロボット30の挙動情報に基づいて、3次元仮想空間においてロボット30によりピックアンドプレースされるワーク232をトラッキングする。ワークトラッキングモジュール162によりトラッキングされるワーク232の位置情報(ワーク位置)は、仮想空間情報105に反映される。
 (f2.ケーブルシミュレーション装置の構成)
 図5を参照して、ケーブルシミュレーション装置1Bは、ケーブルシミュレーションプログラム137が実行されることにより実現されるケーブルシミュレータ165および評価プログラム143が実行されることにより実現される評価モジュール167を含む。ケーブルシミュレータ165は、負荷算出モジュール166を有する。負荷算出モジュール166は、負荷算出プログラム138が実行されることにより実現される。なお、負荷算出モジュール166は、ケーブルシミュレータ165内に備えられずに、ケーブルシミュレータ165から独立していてもよい。
 ケーブルシミュレータ165は、タイムステップti毎に実行されることにより、当該タイムステップtiに対応した機器挙動データ2520のデータに基づき、ケーブルパラメータ139を用いて、当該ケーブル340に対応する3次元仮想空間に配置されたオブジェクトの挙動を算出し、算出結果をケーブル挙動データ2521として格納する。
 ケーブルシミュレータ165は、タイムステップti毎に、ケーブル340に対応するオブジェクトの挙動を算出することで、ケーブル挙動データ2521によって、3次元仮想空間におけるケーブル340の時系列の挙動が示される。
 3Dビジュアライザ164は、3次元仮想空間を視覚化した画像を生成する画像生成部に相当する。3Dビジュアライザ164は、仮想空間情報105のタイムステップti毎の指令値に基づいて、ワーク232、ワーク232の搬送に関連する機器、ロボット30およびロボットハンド210に対応する3次元仮想空間のオブジェクトの3次元座標P(x、y、z)を算出する。時系列の3次元座標P(x、y、z)を含む機器挙動データ2520が算出される。
 3Dビジュアライザ164は、機器挙動データ2520および機器画像データ2530に基づき、3次元仮想空間における機器の挙動を視覚化する画像データを生成し、また、ケーブル挙動データ2521およびケーブル画像データ2531に基づき、3次元仮想空間におけるケーブルの挙動を視覚化する画像データを生成する。これら画像データはディスプレイ109に出力される。これにより、システムシミュレーションによる算出された機器の挙動を示す画像と、ケーブルシミュレーションにより算出されたケーブル340の挙動を示す画像が、ディスプレイ109に表示される。
 周期生成モジュール154は、仮想時刻生成プログラム120が実行されることにより実現される。周期生成モジュール154は、プロセッサ102が有するタイマ(図示せず)の出力に基づき、タイマの出力に同期した信号STを他の各部に出力する。各部は、周期生成モジュール154から信号STが出力される周期(以下、所定のタイムステップtiという)に同期して処理またはプログラムを実行する。これにより、図5の各部は、所定のタイムステップti毎に互いに同期して実行される。信号STの周期は、限定されないが、図3の制御システム2の時刻同期に従うフィールドネットワーク22の通信周期(以下、「制御周期」ともいう。)に基き決定されてもよい。なお、信号STに基づくタイムステップtiが示す周期は、可変であってよい。タイムステップtiの「i」の値は、信号STの出力周期に同期して、例えば1,2,3・・・のように予め定められた最大値まで変化するが、当該最大値は、上記に述べた予め定められたモーション(例えば、ピックアンドプレース)の開始から終了までの所要時間の長さに基づき決定されてもよい。したがって、ケーブルシミュレーションの所要時間は、信号STの出力周期とタイムステップtiの「i」の最大値に基づき決めることができる。
 図5に示すような各機能が互いに連携することで、機器の挙動に連動したケーブル340の挙動を再現することができる。
 本実施の形態では、図5のシミュレーション装置1は、例えば操作ユニット106を介して受付けるユーザーからの指示に従い、システムシミュレーション装置1Aとケーブルシミュレーション装置1Bの一方を起動することができる。また、シミュレーション装置1は、例えば操作ユニット106を介して受付けるユーザーからの指示に従い、システムシミュレーション装置1Aまたはケーブルシミュレーション装置1Bを起動するタイミングを決定することができる。例えば、シミュレーション装置1は、システムシミュレーション装置1Aが起動され、その後に、ケーブルシミュレーション装置1Bの起動タイミングを設定する。これにより、ケーブルシミュレーション装置1Bが起動する際に、機器挙動データ2520をケーブルシミュレータに提供することができる。
 なお、図5では、情報処理装置100は、システムシミュレーション装置1Aとケーブルシミュレーション装置1Bの両方を実装しているが、機器挙動データ2520がケーブルシミュレーション装置1Bに利用可能であれば、情報処理装置100はケーブルシミュレーション装置1Bのみを実装してもよい。
 <G.ケーブルシミュレーション>
 図6は、本実施の形態にかかるケーブルシミュレーション装置1Bの処理のシーケンスの一例を模式的に示す図である。図6では、ケーブルシミュレーション装置1Bが実施するケーブルシミュレーションの処理が、周辺処理と関連付けて示されている。説明のために、以下のケーブルシミュレーションが用いる機器挙動データ2520は、ロボット30(より特定的にはアーム301)に対応するオブジェクトの挙動を示している。
 図6を参照して、ユーザーは、操作ユニット106を操作して、情報処理装置100に対して、システムシミュレーションを設定するための指示と、ケーブルシミュレーションを追加する指示を入力する(ステップS80、ステップS83)。プロセッサ102は、ユーザーからの指示に従い、システムシミュレーションを実行可能なように、例えば、システムシミュレーションのための各種パラメータを設定する。また、プロセッサ102は、ケーブルシミュレーションを追加する指示に従い、ケーブルシミュレーションを実行可能な状態を設定する。例えば、機器挙動データ2520を参照可能なようにケーブルシミュレータ165を設定する。
 ユーザーは、操作ユニット106を操作して、情報処理装置100に対して、システムシミュレーションの実行と機器挙動データ2520の格納の指示を入力する(ステップS85)。
 プロセッサ102は、システムシミュレーション装置1Aを起動し(ステップS87)、システムシミュレーションの結果である機器挙動データ2520をストレージ111に格納(保持)し(ステップS88)、機器挙動データ2520の格納が完了した旨の通知を、例えばディスプレイ109に出力する(ステップS89)。
 ユーザーは、操作ユニット106を操作して、ケーブルパラメータ139を情報処理装置100に対して入力する(ステップS91)。プロセッサ102により実行されたパラメータ設定プログラム145は、操作ユニット106から受付けたケーブルパラメータ139をストレージ111に格納する。
 ユーザーは、操作ユニット106を操作して、情報処理装置100に対して、ケーブルシミュレーションの実行開始の指示を入力する(ステップS93)。プロセッサ102は、ケーブルシミュレーションの実行開始指示に従い、ケーブルシミュレータ165を起動する。
 ケーブルシミュレータ165は、起動されると、パラメータ毎(初期値140および候補値141のそれぞれ毎)にケーブルシミュレーションを繰返す処理(ループ処理)を実行する(ステップS100)。ケーブルシミュレータ165は、信号STに基づくタイムステップtiに同期して、機器挙動データ2520に基づきシミュレーションを実行することにより、タイムステップti毎にケーブル挙動データ2521を算出し格納する(ステップS100a)。また、ケーブルシミュレーションを実行時には、負荷算出モジュール166は、タイムステップti毎に、負荷情報142を算出し格納する。
 評価モジュール167は評価処理を実行する(ステップS130)。具体的には、評価モジュール167は、ケーブル挙動データ2521に基づき、より特定的にはケーブル挙動データ2521から算出された負荷情報142に基づき、挙動を評価し、評価結果である評価データ144を格納する。評価モジュール167は、評価データ144の情報を出力する(ステップS140)。例えば、評価データ144に基づく画像をディスプレイ109に表示させる。
 (g1.パラメータの設定)
 上記に述べたケーブル340のパラメータ設定(ステップS91)のために、パラメータ設定プログラム145はUIツールを提供する。このようなUIツールを、図7と図8を参照して説明する。図7は、本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の一例を模式的に示す図である。図8は、本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の他の例を模式的に示す図である。本実施の形態にかかるケーブルシミュレーションにおいては、ケーブル340とケーブルガイド350は一体化しているものとして扱う。
 図7は、ディスプレイ109に表示される3D画像の一例であって、3D画像は、ロボット30のアーム301と、アーム301にケーブルガイド350を取付けることによってケーブル340が取付けられる状態を示している。図7の3D画像は、プロセッサ102によって、機器画像データ2530およびケーブル画像データ2531のCADデータなどから生成される。ユーザーは、例えば、ディスプレイ109の画像を操作することにより、ケーブルガイド間にケーブル340を接続するか否かを設定することができる。
 ユーザーは、図8のUI画面を操作して、ケーブルのパラメータ139として、初期値140および候補値141を設定する。例えば、パラメータの初期値140のセット(0)を設定できるとともに、候補値141のセット(1)~(5)を設定できる。パラメータの各セットは、ケーブル340の長さ(Cable Length)と、各ケーブルガイド350の位置(Offset From Guide Cad Data)を含む。パラメータ設定プログラム145は、各ケーブルガイド350の位置を、図7でユーザーが設定した3D画面上の位置から換算する。これにより各ケーブルガイド間の距離が決まるので、パラメータ設定プログラム145は、当該ケーブルガイド間のケーブル340の長さを決定することができる。
 (g2.データの関連性)
 図9は、本実施の形態にかかるケーブルシミュレーションのデータの関連性を、ケーブルデータ146を用いて模式的に示す図である。本実施の形態では、図7と図8のユーザー設定操作によって、例えば、図1のように、4個のケーブルガイド350,351,352および353の取付け位置が設定される。これにより、各ケーブルガイド間に接続されるケーブル341,342および343が設定される。
 図9では、図1のケーブル341,342および343のそれぞれに対応して、ケーブルデータ146が格納されることが示されている。ケーブルデータ146は、対応のケーブル340について、ケーブルパラメータ139の初期値140および2つの候補値141のそれぞれを用いたケーブルシミュレーションを実施した場合に取得されるデータを示す。
 ケーブル341,342および343のケーブルデータ146を、それぞれ、ケーブルデータ(1)、ケーブルデータ(2)およびケーブルデータ(3)と称する。また、ケーブルデータ(1)、ケーブルデータ(2)およびケーブルデータ(3)に共通した説明では、ケーブルデータ146と総称する。
 図9を参照して、ケーブルデータ146は、ケーブルパラメータ139の初期値140および候補値141のそれぞれに関連付けてケーブル挙動データ2521、負荷情報142および評価データ144を含む。
 ここでは、ケーブルパラメータ139の候補値141として、候補値(1)と候補値(2)の2種類が示されるが、候補値141の種類は2種類に限定されない。ケーブル挙動データ2521は、初期値140、候補値(1)および候補値(2)それぞれに関連付けて、ケーブル挙動データ(0)、ケーブル挙動データ(1)およびケーブル挙動データ(2)を含む。ケーブル挙動データ(0)、ケーブル挙動データ(1)およびケーブル挙動データ(2)は、それぞれ、初期値140、候補値(1)および候補値(2)のパラメータを用いたケーブルシミュレーションによって、タイムステップti(i=1,2,…n)毎に算出されたケーブル挙動データ2521を示す。図9では、負荷情報142は、ケーブル挙動データ(0)、ケーブル挙動データ(1)およびケーブル挙動データ(2)それぞれに関連付けて、当該ケーブル挙動データから算出された負荷情報(0)、負荷情報(1)および負荷情報(2)を含む。評価データ144は、負荷情報(0)、負荷情報(1)および負荷情報(2)それぞれに関連付けて、当該負荷情報から挙動を評価した結果である評価データ(0)、評価データ(1)および評価データ(2)を含む。
 (g3.物理シミュレーションモデル)
 図10は、本実施の形態にかかるケーブルの物理シミュレーションモデルの一例を模式的に示す図である。
 本実施の形態にかかるケーブルシミュレータ165は、物理シミュレーションを実行する物理シミュレータを含む。図10を参照して、この物理シミュレーションでは、ケーブル340に対応するオブジェクト(第2の対象)は、隣接する剛体304間をジョイント(関節305)で接合することで複数の剛体304が連ねられてモデル化された剛体リンクを含む。具体的には、剛体304は所定のサイズおよび形状を有し、剛体リンクでは、剛体304間が関節305により一列に接続されている。
 剛体304は、例えば、円柱形状の変形しない物体である。物理シミュレーションでは、剛体304の中心に着目して、剛体304は、当該中心の現在位置と直前位置を有した質点として定義される。関節305は、例えばバネまたはダンパなどのジョイントに相当し、関節305は、モデルでは、隣接する剛体304のx、yおよびzの各軸方向の平行移動と回転に対する制約となる拘束条件に相当する。図10では、剛体304の列の両端を、ケーブルガイド350に対応するオブジェクト302によってロボット30(アーム301)に取付けられた状態が示される。このようにケーブルシミュレーションでは、剛体リンクは、剛体304の位置および姿勢について隣接する剛体同士の関係に拘束条件を加えたジョイント構造でモデル化されたものである。図10では、剛体リンクは3個の剛体304からなるとしているが、剛体304は3個に限定されない。すなわち、剛体304の個数は、ケーブルパラメータ139によって指定されるケーブル長(図8のCable length)に従い設定される。
 ケーブルシミュレーションにおいては、ロボット30に対応する3次元仮想空間におけるオブジェクトの所与の挙動(機器挙動データ2520)に基づき、ケーブルパラメータ139を用いて、図10のモデルを表す拘束条件を含む拘束方程式を演算することによって、モデル(図10)の3次元仮想空間における挙動(ケーブル挙動データ2521)を算出する。
 図11は、図10のケーブルの物理シミュレーションモデルの連立方程式147の一例を示す図である。方程式147は、図10の剛体304のそれぞれに対応の式Ati、BtiおよびCtiを含む。各式は、剛体304の位置(x軸、y軸およびz軸それぞれの座標)と姿勢(x軸、y軸およびz軸それぞれの傾きα(ロール)、β(ピッチ)、γ(ヨー))の変数を含み、これら変数の値を、連立方程式(方程式147)を解くことにより算出する。すなわち、ケーブルシミュレータ165は、連立方程式(方程式147)を、機器挙動データ2520に基づいて、パラメータ139を用いて、タイムステップti毎に繰返し解く。これにより、タイムステップti毎に、各剛体304の位置および姿勢に対応する変数の値を算出することができる。
 (g4.拘束条件に従う位置更新)
 さらに、ケーブルシミュレーションでは、位置ベースの物理シミュレーション(Position Based Dynamics:PBD)に従って、剛体304の位置が更新(修正)される。図12は、本実施の形態にかかる物理シミュレーションの位置の更新を模式的に示す図である。図12を参照して、ケーブルシミュレータ165が実施する剛体304の位置の更新処理を説明する。
 具体的には、ケーブルシミュレーションでは、タイムステップti毎に、各剛体304の挙動が算出される。シミュレーションの結果、隣接する剛体304どうしが衝突すると、衝突した剛体304どうしの一方が他方に侵入(めり込む)することがある(図12の(A))。ケーブルシミュレータ165は、剛体304が他の剛体304に侵入するか否かを検出する(図12の(A))。
 図12の(A)では、ケーブルシミュレータ165は、タイムステップti毎に、算出されたオブジェクト(剛体304)どうしの3次元仮想空間における位置x0を用いて、予測位置Xpredict(Xpredict=x0+v×Δt、ただしx0=算出位置、Δt=タイムステップtiの時間、v=速度)を算出し、予測位置Xpredictの関係に基づき、オブジェクトどうしの衝突の有無を検出する。衝突は、例えば、3次元仮想空間におけるオブジェクトの位置(座標)と他のオブジェクトの位置(座標)との両者の距離が、例えば閾値以下であるとことを含む。閾値は、オブジェクトのサイズ(幅、高さなど)に基づく値であってもよい。なお、衝突の検出方法は、これに限定されない。
 12の(A)で侵入が検出されると、ケーブルシミュレータ165は、侵入を解決できるように、衝突した剛体304どうしの位置(位置:Xpredict)を変更する(図12の(B))。この際、ある剛体304の位置X0(位置:Xpredict)が位置X(修正後の位置:Xcorrect)に変更されると、その変更に伴って、当該剛体304に隣接する他の剛体304の位置がずれる可能性がある。そして、このような位置の変更を繰返すと、ケーブルシミュレーションにおいて各剛体304の挙動が安定する状態となる。本実施の形態では、上記の拘束条件は、オブジェクトの挙動を、このような安定状態に移行させるための物理的な制約パラメータに対応する。
 ケーブルシミュレータ165は剛体304の位置を変更すると、すなわち剛体304の位置X(修正後の位置:Xcorrect)を算出すると、速度vを変更する(図12の(C))。具体的には、ケーブルシミュレータ165は、Vcorrect=(X-X0)/Δtにより変更後の速度Vcorrectを算出し、算出された速度Vcorrectを、次のタイムステップtiのための速度v(図12の(A)の速度v)に設定する。
 上記は剛体304のx座標の位置更新を説明しているが、ケーブルシミュレータ165は、y座標位置およびz座標位置についても、x座標位置の更新と同様に更新することができる。
 このように、モデル化された剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式(式147および図12に示す式)に従う演算を、機器挙動データ2520に基づいて実施することにより、剛体リンクの挙動を算出する。これにより、各タイムステップtiでは、剛体304が侵入していない状態(めり込みが解消された状態)である剛体304からなる剛体リンクについて、その挙動を算出することができる。
 (g5.ケーブル340の硬さに基づく位置更新)
 本実施の形態にかかるケーブルシミュレーションでは、ケーブル340の挙動を安定状態に移行させるための拘束条件にかかるパラメータとして、ケーブル340の硬さを表すパラメータ149を含めることができる。硬さパラメータ149としては、例えば、ケーブル340の材料に固有のパラメータStiffnessおよびパラメータDampingを含む。パラメータStiffnessは、剛体304の変形のしにくさを示し、例えばヤング率と等価である。また、パラメータDampingは、剛体304の振動に対する減衰特性を示す。
 パラメータDampingは、ケーブルシミュレーションにおいて、ケーブル340の振動を抑制するように作用する。具体的には、ロボット30に取付けられたケーブルガイド350は、ロボットエミュレータ160によって動く(挙動が変化する)ため、剛体304はロボット30の速度に応じて加速し、これに伴いケーブル340は振動し続けることになる。したがって、パラメータDampingを用いてケーブルシミュレーションが実施されることにより、ロボット30の挙動に伴いケーブルガイド350の位置が移動したときに、剛体304の速度を減速させてケーブル340の振動を抑制することが可能となる。
 ケーブルシミュレータ165は、以下のSTEP1、STEP2およびSTEP3に示す演算を実行することにより、ケーブル340の硬さに基づく位置更新を実施する。
 [STEP1]ケーブルシミュレータ165は、以下の(式1)の演算により、剛体304の直前のタイムステップtiで算出された位置(prevPositions[current])と現在のタイムステップtiで算出された位置(positions[current])から速度(var_velocity)を算出する。ケーブルシミュレータ165は、算出された速度に、(式2)~(式6)の演算により、重力と減衰、形を維持しようとする力を加える。
 var_velocity=(positions[current]-prevPositions[current])/prevDeltaTime(式1);
 var_geometricError=distance-data.maxDistance(式2);この(式2)では、隣接する2つの剛体304の間の距離(distance)と許容される最大距離である閾値(data.maxDistance)との差(var_geometricError)が算出される。ケーブルシミュレータ165は、(var_geometricError=0)の条件が満たされたと判定すると、隣接する2つの剛体304が衝突(一方が他方に侵入)しないと検出し、当該条件が満たされないと判定すると、当該衝突(侵入)があったと検出する。
 positionForce(F)=stiffness ×- geometricError(式3);
 velocity += positionForce * Time.deltaTime(式4);
 velocity += Vector3.down * gravity * Time.deltaTime(式5);
 velocity *= damping(式6);
 [STEP2]ケーブルシミュレータ165は、上記の[STEP1]において算出した速度(velocity)に基づき、(式7)および(式8)を演算することより、現在のタイムステップtiにおける位置(positions[current])を更新する。
 prevPositions[current] = positions[current](式7);
 positions[current] = positions[current] + velocity * Time.deltaTime(式8);
 [STEP3]ケーブルシミュレータ165は、剛体304が隣接する他の剛体304に侵入した(めり込んだ)と検出した場合、侵入を解消する(めり込まない)位置まで、現在位置(positions[current])を変更する。この位置の変更は、図12で示した位置更新に従い実施される。
 ケーブルシミュレータ165は、[STEP1]~[STEP3]の操作を、すべての剛体304のx、yおよびzの各座標位置に対して繰返す。
 これにより、各タイムスステップにおいて、剛体304それぞれの位置は、ケーブル340の材料に固有の硬さのパラメータ149に基づき算出された位置であって、且つ侵入が解消(めり込みが解消)された位置となる。これにより、ケーブルシミュレータ165は、次のタイムステップtiのケーブルシミュレーションを、このような算出位置を用いて開始することができる。
 <H.フローチャート>
 図13は、本実施の形態にかかるケーブルシミュレーションと、それに関連する処理を概略的に示すフローチャートである。図13を参照して、ケーブルシミュレータ165は、ケーブルパラメータ139からパラメータ(ケーブル340の長さ(Cable length)パラメータ、ケーブル340の取付け位置(Offset From Guide Cad Data)パラメータ)を取得し、ケーブルシミュレーションプログラム137に設定する(ステップS103)。これにより、各ケーブルガイド間のケーブル340の長さ、すなわち剛体304の個数が設定される。ケーブルシミュレーションの開始時には、ステップS103では、初期値140のパラメータが設定される。説明のために、各ケーブルガイド間のケーブル340の長さは同じである。
 ケーブルシミュレータ165は、タイムステップtiに初期値(i=1)を設定する(ステップS105)。その後は、タイムステップtiを1ステップずつ更新(すなわち、i=i+1)しながら(ステップS121)、(i=n)の条件が満たされるまで(ステップS107でYES)、機器挙動データ2520に基づき、ステップS103で設定されたパラメータを用いて、ケーブルシミュレーションを実施する(ステップS109~S115)。
 具体的には、ケーブルシミュレータ165は、機器挙動データ2520から、現在のタイムステップtiに対応する挙動データを読出し(ステップS109)、読出された挙動データに基づき、ステップS103で設定されたケーブルパラメータ139を用いて、ケーブル340に対応するオブジェクトの挙動を算出する(ステップS111)。ステップS111では、ケーブルシミュレータ165は、図11の式147で示す連立方程式と、図12の拘束条件に従う位置更新(ステップS11a)の方程式およびケーブル340の硬さパラメータ149に従う位置更新(ステップS11b)の方程式を用いて実施する。この拘束条件を用いた拘束方程式の演算には、例えばProjected Gauss-Seidel法を利用することができる。ステップS111で算出されたケーブル340の挙動を示すケーブル挙動データ2521は、ストレージ111に格納される。
 ステップS111において、現在のタイムステップtiにおけるオブジェクトの位置(各剛体304の位置)が算出されると、負荷算出モジュール166は、当該タイムステップtiのケーブルシミュレーション結果であるケーブル挙動データ2521に基づいて、剛体リンクにかかる負荷を算出し(ステップS113)、算出された負荷情報142を出力する(ステップS115)。負荷情報142は、ストレージ111に格納される。その後、次のタイムステップtiに進み(ステップS121)、ステップS107に戻る。ステップS107では、ケーブルシミュレータ165は、(ti>tn)の条件が満たされるかを判定する。
 (ti>tn)の条件が満たされないときは(ステップS107でNO)、ステップS109に移行するが、当該条件は満たされると判定されると(ステップS107でYES)、ケーブルシミュレータ165は、ストレージ111に次のケーブルパラメータ139が格納されているか、すなわち候補値141が格納されているかを判定する(ステップS123)。
 次のケーブルパラメータ139が格納されていないと判定されると(ステップS123でNO)、処理は終了するが、次のケーブルパラメータ139が格納されていると判定されると(ステップS123でYES)、ステップS103に戻る。これにより、次のケーブルパラメータ139(候補値141)が読出されて(ステップS103)、次のケーブルパラメータ139を用いたケーブルシミュレーション(ステップS105~ステップS121)が実施される。
 図13の処理によれば、ケーブルパラメータ139(初期値140、候補値141)のそれぞれに関連付けて、ケーブルのオブジェクト(剛体リンク)の挙動が算出されて(ステップS111)、算出結果であるケーブル挙動データ2521およびケーブル挙動データ2521に基づく負荷情報142が格納される(図9)。
 <I.負荷の算出>
 負荷算出モジュール166は、ケーブル挙動データ2521に基づき、図14に示すような、負荷情報142を算出する。本実施の形態では、ケーブル340にかかる負荷の種類1412として、曲げ、伸び、ひねり、衝突の回数、反発力を含むが、これらに限定されない。図14は、本実施の形態にかかる負荷情報142の一例を模式的に示す図である。図14では、ケーブル挙動データ(0)、ケーブル挙動データ(1)およびケーブル挙動データ(2)それぞれに関連付けられる、負荷情報(0)、負荷情報(1)および負荷情報(2)が示される。負荷情報(0)~負荷情報(2)は、同様の項目を含むので、これらに共通した説明では負荷情報142と総称する。
 図14を参照して、負荷情報142は、各ケーブルガイド間の位置1411毎に、当該ケーブルガイド間の剛体リンクを構成する各剛体304にかかる負荷であって、種類1412で示す負荷を含む。ケーブルガイド間の剛体リンクは、例えばj個の剛体304からなり、図14の位置1411は、各剛体304の位置(1、2,3,…jで示す位置)で特定されている。
 負荷算出モジュール166は、各剛体304の挙動(位置と姿勢)に基づき、所定演算に従い当該剛体304、すなわち各位置1411にかかる負荷を算出する。例えば、各剛体304のひねり、曲げは、当該剛体304と隣接する剛体304の挙動から算出され、伸びは、隣接する剛体304間の距離(距離が大きいほど引っ張られている)から算出され、反発力は、上記に述べた衝突時に侵入した距離(距離が大きいほど反発力は大きい)から算出される。なお、負荷算出モジュール166が算出する衝突には、剛体304とは異なるオブジェクト(ロボット30、ワーク232、コンベア230など)との衝突が含まれてもよい。
 <J.評価処理>
 評価モジュール167は、負荷情報142(負荷情報(0)、負荷情報(1)および負荷情報(2))のそれぞれに基づき、当該負荷情報142に関連付けられた剛体リンクの挙動(ケーブル挙動データ2521)を評価する。評価モジュール167は、評価結果である評価データ144(評価データ(0)、評価データ(1)および評価データ(2))を、当該ケーブル挙動データ2521に関連付けて格納する(図9)。
 図15は、本実施の形態にかかる評価処理のフローチャートである。評価モジュール167は、操作ユニット106からのユーザー操作に基づき、ケーブル挙動データ2521を評価するための条件を、評価プログラム143に設定する(ステップS131)。評価の所定条件は、例えば、負荷の種類1412毎の負荷の大きさの閾値を用いて示される。より具体的には、所定条件は、対応の負荷の値が最小であるケーブル挙動データ2521の算出に用いたケーブルパラメータ139を、ケーブル引き回しの設計のための最適値と特定してもよい。
 評価モジュール167は、評価の所定条件に基づき、各ケーブルパラメータ139に関連付けられた負荷情報142を検索する(ステップS133)。検索の結果に基づき、評価モジュール167は、ケーブルパラメータ139それぞれに関連付けられた負荷情報142のうちから、所定条件を満たすような負荷情報142が検索されるか否かを判定する(ステップS135)。具体的には、全ての負荷の種類1412の値が、閾値未満となるような負荷情報142が検索できるか否かを判定する。
 評価モジュール167は、所定条件を満たす負荷情報142が検索されないと判定すると(ステップS135でNO)、所定条件に一致するケーブル挙動データ2521は算出されていない、すなわちケーブルパラメータ139は設定されていない旨を出力する(ステップS139)。また、評価モジュール167は、所定条件を満たすような負荷情報142が検索されたと判定すると(ステップS135でYES)、所定条件に一致するケーブル挙動データ2521が算出されたので、当該算出に用いられた(当該算出時にステップS103で設定された)ケーブルパラメータ139、すなわち当該負荷情報142に関連付けられたケーブルパラメータ139を検索して出力する(ステップS137)。
 ユーザーは、出力されたケーブルパラメータ139(ケーブル長(Cable Length)および取付け位置(Offset From Guide Cad Data)のパラメータ)から、評価の所定条件を満たすような最適なケーブル長と取付け位置となる、ケーブル340の引き回しを事前に設計することができる。また、引き回しの事前設計に従えば、したがってケーブル340の引き回し作業にかかる時間を短縮できるとともに、ケーブルガイド350などの引き回しの治具を事前に設計することも可能となる。
 <K.表示例>
 図16は、本実施の形態にかかる負荷情報142の表示画面の一例を示す図である。負荷算出モジュール166または評価モジュール167は、ディスプレイ109に、負荷情報142に基づく画像を表示する。図16では、例えば、曲げの負荷情報142のグラフが示される。グラフは、横軸に各剛体304の識別子(セグメント番号)である位置情報がとられて、縦軸には、曲げの値がとられている。また、図16では、タイムステップti毎のグラフが、タイムステップtiの時系列に従い、画面の奥行き方向に並べて表示されている。例えば3D表示により、各タイムステップtiにおけるオブジェクトの各位置にかかる負荷(曲げ)の大きさと、当該位置における負荷の大きさの経時的な変動を一画面で示すことができる。
 ユーザは、図16の画面から、ケーブル340のオブジェクトにおいて大きな負荷がかかる部分、または全体にかかる負荷を視認できるとともに、負荷情報142からオブジェクトに対応するケーブル340の寿命を予測することも可能となる。例えば、大きな負荷がかかる部分を特定するために、評価モジュール167は、各剛体304の識別子に対応した負荷のうち、閾値を超える負荷については、表示態様(表示色など)を変更する。図16は、曲げの情報の画面を例示するが、他の種類の負荷情報142であっても同様に表示することができる。
 また、3Dビジュアライザ164は、シミュレーション結果である機器挙動データ2520およびケーブル挙動データ2521を用いて、3次元仮想空間をビジュアル化する画像データを生成してもよい。ディスプレイ109は、この画像データに基づく画像を表示する。これにより、ディスプレイ109は、ロボット30に取付けられたケーブル340がロボット30の動きに連動して動くような3次元画像を表示することができる。
 <L.プログラム>
 ケーブルシミュレーションは、図4の情報処理装置100のプロセッサ102がストレージ111などのメモリに格納されるプログラムを実行することにより提供される構成を例示したが、これらの提供される構成の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、情報処理装置100の主要部を、汎用的なアーキテクチャに従うハードウェアを用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 また、情報処理装置100は、プロセッサを複数個備えてもよい。この場合は、ケーブルシミュレーションは、複数のプロセッサにより実行することが可能である。また、プロセッサ102が複数のコアを含む場合は、ケーブルシミュレーションは、プロセッサ102内の複数のコアにより実行することが可能である。
 情報処理装置100の記憶媒体114は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。情報処理装置100のプロセッサ102は、これら記憶媒体から、上記に述べたケーブルシミュレーションにかかるプログラムまたは機器挙動データ2520を取得してもよい。
 <M.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
 機器(30)に取付けられるケーブル(340)の挙動を算出するシミュレーション装置(1B)であって、
 前記機器に対応する仮想空間に配置された第1の対象の挙動(2520)に基づき、前記ケーブルの取付けに関するパラメータ(139)を用いて、当該ケーブルに対応する前記仮想空間に配置された第2の対象の挙動(304、305)を算出するケーブル挙動算出部(165)と、
 前記ケーブル挙動算出部により算出された前記第2の対象の挙動を、当該挙動に基づき評価する評価部(167)とを備える、シミュレーション装置。
[構成2]
 前記第1の対象の挙動は、所定のタイムステップ(ti)毎に算出された挙動を含み、
 前記ケーブル挙動算出部は、
 前記タイムステップ毎に、当該タイムステップに対応の前記第1の対象の挙動に基づき、前記パラメータを用いて、前記第2の対象の挙動を算出する、構成1に記載のシミュレーション装置。
[構成3]
 前記ケーブル挙動算出部は、物理シミュレータを含む、構成2に記載のシミュレーション装置。
[構成4]
 前記第2の対象は、隣接する剛体(304)間をジョイント(304)で接合して連ねられてモデル化された剛体リンクを含み、
 前記物理シミュレータは、
 前記モデル化された前記剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、前記ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、前記第1の対象の挙動に基づいて実施することにより、前記第2の対象の挙動を算出する、構成3に記載のシミュレーション装置。
[構成5]
 前記ケーブル挙動算出部により算出された前記第2の対象の挙動に基づき、当該第2の対象にかかる負荷を算出する負荷算出部(166)を、さらに備える、構成4に記載のシミュレーション装置。
[構成6]
 前記負荷は、前記第2の対象が備える各前記剛体にかかる負荷を含む、構成5に記載のシミュレーション装置。
[構成7]
 前記タイムステップの時系列に従い、各タイムステップで算出された前記第2の対象の挙動に基づく前記負荷を表示する、構成5または6に記載のシミュレーション装置。
[構成8]
 閾値を超える負荷の表示態様を変更する、構成7に記載のシミュレーション装置。
[構成9]
 前記評価部は、
 前記負荷算出部により算出された前記負荷に基づき、前記第2の対象の挙動を評価する、構成5から8のいずれか1に記載のシミュレーション装置。
[構成10]
 前記パラメータを設定するパラメータ設定部(145)を備え、
 前記負荷が所定条件を満たすとき、前記第2の対象の挙動の算出時に設定されたパラメータを出力する、構成5から7のいずれか1に記載のシミュレーション装置。
[構成11]
 前記パラメータは、前記ケーブルの長さまたは前記ケーブルの取付け位置(140、141)を含む、構成1から8のいずれか1に記載のシミュレーション装置。
[構成12]
 前記パラメータは、前記ケーブルの硬さを表すパラメータ(149)を含む、構成1から11のいずれか1に記載のシミュレーション装置。
[構成13]
 前記機器は、ロボット(30)を含み、
 前記第1の対象の挙動は、前記ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出される、構成1から12のいずれか1に記載のシミュレーション装置。
[構成14]
 前記仮想空間をビジュアル化した画像を生成する画像生成部(164)を、さらに備える、構成1から13のいずれか1に記載のシミュレーション装置。
[構成15]
 コンピュータ(100)に、機器(30)に取付けられるケーブル(340)の挙動を算出する方法を実行させるシミュレーションプログラム(138)であって、
 前記方法は、
 前記機器に対応する仮想空間に配置された第1の対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出するステップ(S100)と、
 算出された前記第2の対象の挙動を、当該挙動に基づき評価するステップ(S130)とを備える、シミュレーションプログラム。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
 1 シミュレーション装置、1A システムシミュレーション装置、1B ケーブルシミュレーション装置、30 ロボット、100 情報処理装置、102 プロセッサ、104 主メモリ、105 仮想空間情報、106 操作ユニット、108 出力ユニット、109 ディスプレイ、111 ストレージ、112 光学ドライブ、114 記憶媒体、120 仮想時刻生成プログラム、121 中継プログラム、122 物理シミュレーションプログラム、124 物理シミュレーションパラメータ、126 PLCシミュレーションプログラム、130 ロボットエミュレーションプログラム、132 ロボットパラメータ、134 統合プログラム、135 3Dビジュアライズデータ、136 画像処理プログラム、137 ケーブルシミュレーションプログラム、138 負荷算出プログラム、139 ケーブルパラメータ、140 初期値、141 候補値、142 負荷情報、143 評価プログラム、144 評価データ、145 パラメータ設定プログラム、146 ケーブルデータ、147 方程式、149 硬さパラメータ、150 仮想空間情報管理モジュール、154 周期生成モジュール、155 ワーク挙動シミュレータ、156 物理シミュレータ、160 ロボットエミュレータ、164 3Dビジュアライザ、165 ケーブルシミュレータ、166 負荷算出モジュール、167 評価モジュール、210 ロボットハンド、252 挙動データ、253 画像データ、301 アーム、304 剛体、305 関節、340,341,342,343 ケーブル、350,351,352 ケーブルガイド、2520 機器挙動データ、2521 ケーブル挙動データ、2530 機器画像データ、2531 ケーブル画像。

Claims (15)

  1.  機器に取付けられるケーブルの挙動を算出するシミュレーション装置であって、
     前記機器に対応する仮想空間に配置された第1の対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出するケーブル挙動算出部と、
     前記ケーブル挙動算出部により算出された前記第2の対象の挙動を、当該挙動に基づき評価する評価部とを備える、シミュレーション装置。
  2.  前記第1の対象の挙動は、所定のタイムステップ毎に算出された挙動を含み、
     前記ケーブル挙動算出部は、
     前記タイムステップ毎に、当該タイムステップに対応の前記第1の対象の挙動に基づき、前記パラメータを用いて、前記第2の対象の挙動を算出する、請求項1に記載のシミュレーション装置。
  3.  前記ケーブル挙動算出部は、物理シミュレータを含む、請求項2に記載のシミュレーション装置。
  4.  前記第2の対象は、隣接する剛体間をジョイントで接合して連ねられてモデル化された剛体リンクを含み、
     前記物理シミュレータは、
     前記モデル化された前記剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、前記ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、前記第1の対象の挙動に基づいて実施することにより、前記第2の対象の挙動を算出する、請求項3に記載のシミュレーション装置。
  5.  前記ケーブル挙動算出部により算出された前記第2の対象の挙動に基づき、当該第2の対象にかかる負荷を算出する負荷算出部を、さらに備える、請求項4に記載のシミュレーション装置。
  6.  前記負荷は、前記第2の対象が備える各前記剛体にかかる負荷を含む、請求項5に記載のシミュレーション装置。
  7.  前記タイムステップの時系列に従い、各タイムステップで算出された前記第2の対象の挙動に基づく前記負荷を表示する、請求項5または6に記載のシミュレーション装置。
  8.  閾値を超える負荷の表示態様を変更する、請求項7に記載のシミュレーション装置。
  9.  前記評価部は、
     前記負荷算出部により算出された前記負荷に基づき、前記第2の対象の挙動を評価する、請求項5から8のいずれか1項に記載のシミュレーション装置。
  10.  前記パラメータを設定するパラメータ設定部を備え、
     前記負荷が所定条件を満たすとき、前記第2の対象の挙動の算出時に設定されたパラメータを出力する、請求項5から7のいずれか1項に記載のシミュレーション装置。
  11.  前記パラメータは、前記ケーブルの長さまたは前記ケーブルの取付け位置を含む、請求項1から8のいずれか1項に記載のシミュレーション装置。
  12.  前記パラメータは、前記ケーブルの硬さを表すパラメータを含む、請求項1から11のいずれか1項に記載のシミュレーション装置。
  13.  前記機器は、ロボットを含み、
     前記第1の対象の挙動は、前記ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出される、請求項1から12のいずれか1項に記載のシミュレーション装置。
  14.  前記仮想空間をビジュアル化した画像を生成する画像生成部を、さらに備える、請求項1から13のいずれか1項に記載のシミュレーション装置。
  15.  コンピュータに、機器に取付けられるケーブルの挙動を算出する方法を実行させるシミュレーションプログラムであって、
     前記方法は、
     前記機器に対応する仮想空間に配置された第1の対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出するステップと、
     算出された前記第2の対象の挙動を、当該挙動に基づき評価するステップとを備える、シミュレーションプログラム。
PCT/JP2020/047252 2020-01-22 2020-12-17 シミュレーション装置およびシミュレーションプログラム WO2021149419A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020008221A JP7467932B2 (ja) 2020-01-22 2020-01-22 シミュレーション装置およびシミュレーションプログラム
JP2020-008221 2020-01-22

Publications (1)

Publication Number Publication Date
WO2021149419A1 true WO2021149419A1 (ja) 2021-07-29

Family

ID=76991680

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/047252 WO2021149419A1 (ja) 2020-01-22 2020-12-17 シミュレーション装置およびシミュレーションプログラム

Country Status (2)

Country Link
JP (1) JP7467932B2 (ja)
WO (1) WO2021149419A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022027699A (ja) * 2020-07-31 2022-02-14 ダッソー システムズ アメリカス コーポレイション 製造リソースシミュレーションのための仮想化ケーブルモデル化

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182017A (ja) * 1993-12-24 1995-07-21 Nissan Motor Co Ltd 線条材のシミュレーション方法
JP2002073701A (ja) * 2000-08-30 2002-03-12 Toyota Central Res & Dev Lab Inc アセンブリ装置及びアセンブリ方法
WO2004104868A1 (ja) * 2003-05-19 2004-12-02 Fujitsu Limited ハーネス設計支援装置並びにハーネス設計支援プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6950347B2 (ja) 2017-08-10 2021-10-13 オムロン株式会社 情報処理装置、情報処理方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182017A (ja) * 1993-12-24 1995-07-21 Nissan Motor Co Ltd 線条材のシミュレーション方法
JP2002073701A (ja) * 2000-08-30 2002-03-12 Toyota Central Res & Dev Lab Inc アセンブリ装置及びアセンブリ方法
WO2004104868A1 (ja) * 2003-05-19 2004-12-02 Fujitsu Limited ハーネス設計支援装置並びにハーネス設計支援プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022027699A (ja) * 2020-07-31 2022-02-14 ダッソー システムズ アメリカス コーポレイション 製造リソースシミュレーションのための仮想化ケーブルモデル化
JP7278338B2 (ja) 2020-07-31 2023-05-19 ダッソー システムズ アメリカス コーポレイション 製造リソースシミュレーションのための仮想化ケーブルモデル化
US11886174B2 (en) 2020-07-31 2024-01-30 Dassault Systemes Americas Corp. Virtualized cable modeling for manufacturing resource simulation

Also Published As

Publication number Publication date
JP2021117519A (ja) 2021-08-10
JP7467932B2 (ja) 2024-04-16

Similar Documents

Publication Publication Date Title
WO2021053855A1 (ja) シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
CN106181964B (zh) 机器人程序生成装置
US20150239127A1 (en) Visual debugging of robotic tasks
CN109849025B (zh) 振动抑制装置
JP7439206B2 (ja) 情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法
US11975451B2 (en) Simulation-in-the-loop tuning of robot parameters for system modeling and control
WO2021149419A1 (ja) シミュレーション装置およびシミュレーションプログラム
JP7475841B2 (ja) 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置
WO2022137581A1 (ja) シミュレーション装置およびシミュレーションプログラム
CN114800523B (zh) 机械臂轨迹修正方法、系统、计算机及可读存储介质
EP4052865A1 (en) Information processing apparatus, robot system, information processing method, program, and recording medium
WO2021181804A1 (ja) シミュレーション装置およびプログラム
TWI781708B (zh) 學習裝置、學習方法、學習程式、控制裝置、控制方法及控制程式
JP7447568B2 (ja) シミュレーション装置およびプログラム
Stan et al. A novel virtual reality robot interface for isoglide3 parallel robot
da Rosa et al. Design and Implementation of a Platform for Controlling the Mentor Robotic Arm
JP2022135939A (ja) 情報処理装置、ロボットシステム、物品の製造方法、情報処理方法、プログラム、及び記録媒体
Zavala-Yoé et al. Mechanical and computational design for control of a 6-pus parallel robot-based laser cutting machine
JP2022120649A (ja) 制御システム、動作計画装置、制御装置、動作計画及び制御方法、動作計画方法、並びに制御方法
Fratu et al. Predictive strategy for robot behavioral control
JP2023076836A (ja) ロボット装置、ロボット装置の制御方法、ロボット装置を用いた物品の製造方法、制御プログラム、記録媒体
CN116940447A (zh) 操纵操纵器的方法、控制系统及工业机器人

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20916070

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20916070

Country of ref document: EP

Kind code of ref document: A1