Simulation device, simulation program, and simulation method

The simulation device synchronizes the behavior of a device and its accessory within a virtual space, addressing the limitations of existing simulations by accurately simulating their interactions, thereby improving robot simulation accuracy and versatility.

JP7729367B2Active Publication Date: 2025-08-26OMRON CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2023193551
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-11-14
Publication Date
2025-08-26
Estimated Expiration
2039-09-17

AI Technical Summary

Technical Problem

Existing simulations, such as those described in Japanese Patent Application Laid-Open Publication No. 2016-042378, do not account for the behavior of accessory devices attached to robots, limiting the versatility and accuracy of robot simulations.

Method used

A simulation device and method that calculates the behavior of both a first device and an accessory device attached to it within a virtual space, using synchronized time steps to ensure accurate simulation of their interactions, including a first behavior calculation unit for the device and a second behavior calculation unit for the accessory device, with a physics simulator to handle force and collision detection.

Benefits of technology

Enables synchronized simulation of both the device and its attached accessory device, allowing for accurate prediction of their behavior and interaction, enhancing the versatility and realism of robot simulations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007729367000001
    Figure 0007729367000001
  • Figure 0007729367000002
    Figure 0007729367000002
  • Figure 0007729367000003
    Figure 0007729367000003
Patent Text Reader

Abstract

To simulate the behavior of an apparatus and its accessory equipment.SOLUTION: A device comprises: a first behavior calculation section for calculating a behavior of a first object disposed in a virtual space corresponding to a first apparatus provided with accessory equipment; and a second behavior calculation section for calculating a behavior of a second object in a virtual space corresponding to a second apparatus which includes accessory equipment. For each prescribed time step, the first behavior calculation section calculates a behavior of the first object corresponding to the first apparatus provided with the accessory equipment, and subsequently, the second behavior calculation section calculates a behavior of the accessory equipment provided in the first apparatus on the basis of the behavior of the first object calculated by the second behavior calculation section, for the time step.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a simulation device, a simulation program, and a simulation method that can estimate the behavior of a robot placed in a virtual space. [Background technology]

[0002] Computer-based simulations are applied in various technical fields. By using such simulations, various advance studies can be performed even when actual equipment does not exist. As an example of using such simulations in FA (Factory Automation), for example, Japanese Patent Application Laid-Open Publication No. 2016-042378 (Patent Document 1) discloses an integrated simulation of a mechanical system including a real-space visual sensor corresponding to a virtual imaging unit. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2016-042378 Summary of the Invention

[0004] In the integrated simulation disclosed in Patent Document 1, a virtual workpiece in a virtual space is handled by a virtual robot in the virtual space that corresponds to a robot in real space. In reality, in the case of industrial robots, high versatility of the robot is achieved by replacing the accessory device (also called an end effector) attached to the tip of the robot arm with a type of device appropriate for the workpiece or process. Patent Document 1 does not disclose any simulation including the accessory device attached to such a device such as a robot.

[0005] The present disclosure provides a configuration that can simulate the behavior of a device and an accessory device attached to the device. [Means for solving the problem]

[0006] A simulation device according to the present disclosure is a simulation device that calculates the behavior of equipment, and includes a first behavior calculation unit that calculates the behavior of a first object placed in a virtual space corresponding to a first equipment to which an accessory device is attached, and a second behavior calculation unit that calculates the behavior of the second object in the virtual space corresponding to a second equipment, wherein the second equipment includes an accessory device, and at each predetermined time step, the first behavior calculation unit calculates the behavior of the first object corresponding to the first equipment to which the accessory device is attached, and then the second behavior calculation unit calculates the behavior of the accessory device attached to the first equipment based on the calculated behavior of the first object.

[0007] According to the above disclosure, the behavior of both the first device and the attached accessory device can be calculated in the same virtual space, and the behavior of both can be simulated. Furthermore, since this simulation is performed in a common time step, the behavior of both can be simulated in synchronization.

[0008] In the above disclosure, the accessory device includes a device that, when attached, adds an operation function for operating a workpiece to the first device.

[0009] According to the above disclosure, it is possible to simulate the behavior of an accessory device that provides a function for operating a workpiece of the first device.

[0010] In the above disclosure, the second behavior calculation unit includes a physical simulator. According to the above disclosure, it is possible to provide a behavior calculation unit for a second device by utilizing a physical simulator without making any changes to the first behavior calculation unit.

[0011] In the above disclosure, the first device includes a robot, and the first behavior calculation unit executes emulation of a robot program having command codes for causing the robot to manipulate a workpiece.

[0012] According to the above disclosure, the first behavior calculation unit can be realized by an emulator of a robot program that controls the robot in order to calculate the behavior of the robot.

[0013] In the above disclosure, the behavior of the first object calculated by the first behavior calculation unit includes the position of the first object in the virtual space, and the physics simulator calculates the behavior of the second object based on a physics calculation using the position of the first object calculated by the first behavior calculation unit.

[0014] According to the above disclosure, the behavior of the second object can be calculated based on the behavior of the first object calculated by the physics simulator through physical calculations in the same time step.

[0015] In the above disclosure, the physics simulator performs physics calculations by disabling the generation of force on the second object.

[0016] According to the above disclosure, when the physics simulator calculates the behavior of the second object through physics calculation, the force component in the physics calculation is set to 0. Therefore, even when the behavior of the second object is calculated through physics calculation, it can be calculated as a value that is not affected by the force component.

[0017] In the above disclosure, the behavior calculated for the second object of the accessory device includes the position of the second object in the virtual space, and the second behavior calculation unit further detects a collision between the second object and a specified object based on the position of the second object in the virtual space and the position of the specified object in the virtual space.

[0018] According to the above disclosure, the second behavior calculation unit can detect a collision of an object corresponding to an accessory device with another predetermined object in the virtual space.

[0019] In the above disclosure, the simulation device further includes a third behavior calculation unit that calculates the behavior of a third object placed in a virtual space corresponding to a third device, the third device works in cooperation with the first device while exchanging data, and the data exchanged between the first device and the third device is obtained from an actual device installed on the production line.

[0020] According to the above disclosure, when calculating the behavior of an object corresponding to a third device that operates in cooperation with a first device while exchanging data with the first device, the data exchanged can be acquired from the actual device. This makes it possible to simulate the behavior of the first device or the third device while linking with the actual device operating on a production line.

[0021] In the above disclosure, the accessory device includes a cable attachable to the first device. According to the above disclosure, it is possible to realize a simulation including the behavior of an object corresponding to a cable that can be attached to a first device.

[0022] In the above disclosure, an image generation unit that generates an image that visualizes the virtual space is further provided.

[0023] According to the above disclosure, the behavior of a simulation target including a first device and a second device can be visualized and reproduced in a virtual space.

[0024] According to another aspect of the present disclosure, there is provided a simulation program for causing a computer to execute a method for calculating behavior of a device, the simulation program including: a first behavior calculation step of calculating behavior of a first object located in a virtual space corresponding to a first device to which an accessory device is attached; and a second behavior calculation step of calculating behavior of a second object in the virtual space corresponding to a second device, the second device including an accessory device, and at each predetermined time step, after calculating the behavior of the first object corresponding to the first device to which the accessory device is attached in the first behavior calculation step, calculating the behavior of the accessory device attached to the first device based on the calculated behavior of the first object in the second behavior calculation step.

[0025] According to the above disclosure, when the simulation program is executed, the behavior of both the first device and the attached accessory device in the same virtual space is calculated, and the behavior of both can be reproduced (simulated). Furthermore, since this simulation is executed at a common time step, the behavior of both can be simulated in synchronization.

[0026] According to yet another aspect of the present disclosure, there is provided a simulation method for calculating behavior of a device, the simulation method comprising: a first step of calculating behavior of a first object located in a virtual space corresponding to a first device to which an accessory device is attached; and a second step of calculating behavior of a second object in the virtual space corresponding to a second device, the second device including an accessory device, wherein, at each predetermined time step, after calculating the behavior of the first object corresponding to the first device to which the accessory device is attached in the first step, the second step calculates behavior of the accessory device attached to the first device based on the behavior of the first object calculated in the first step.

[0027] According to the simulation method disclosed above, the behavior of both the first device and the accessory device attached thereto can be calculated in the same virtual space, and the behavior of both can be reproduced (simulated). Furthermore, since this simulation is performed in a common time step, the behavior of both can be simulated in synchronization. [Effects of the Invention]

[0028] According to the present disclosure, both the first device and the accessory device attached thereto can be simulated in the same virtual space. [Brief explanation of the drawings]

[0029] [Figure 1] 1 is a schematic diagram showing an application example of a simulation device 1 according to the present embodiment. [Figure 2] 1 is a diagram showing an example of the appearance of a device that is a target of a simulation according to an embodiment of the present invention, in association with a control system. [Figure 3] 2 is a schematic diagram showing an example of a unit configuration of a control system 2 according to the present embodiment. FIG. [Figure 4] 1 is a schematic diagram showing an example of a hardware configuration for realizing a simulation device 1 according to the present embodiment. [Figure 5] 1 is a schematic diagram showing an example of a functional configuration for realizing a simulation device 1 according to the present embodiment. [Figure 6] FIG. 2 is a diagram illustrating a simulation target of a physical simulator 156 according to the present embodiment. [Figure 7] FIG. 2 is a diagram schematically illustrating an example of a processing sequence of the simulation device 1 according to the present embodiment. [Figure 8] FIG. 10 is a diagram showing an example of a display according to the present embodiment. [Figure 9] 1 is a diagram schematically illustrating an example of a combination of a simulation device 1 according to the present embodiment and an actual machine. [Figure 10]This is a diagram for explaining the simulation of the cable attached to the robot 30 according to this embodiment.

Embodiment for Carrying Out the Invention

[0030] <A. Application Example> First, an example of a scenario to which the present invention is applied will be described.

[0031] The simulation device 1 according to this embodiment is a simulation device that estimates the behavior of a system that controls a plurality of devices provided in FA. The plurality of devices may include, but are not limited to, a robot that operates in cooperation with a PLC (programmable logic controller) and attached devices that are mounted on the robot and interlock with the robot. Such attached devices include devices that add an operation function for operating a workpiece on the robot when mounted. Typically, for example, it includes a robot hand that is detachable from the arm of the robot as an end effector. The simulation device 1 can be applied to, for example, an application that performs "pick and place" where the robot hand handles a workpiece. The "workpiece" may be any thing as long as its position can be tracked, such as a final product or a part thereof, or an intermediate product or a part thereof. Note that the simulation device 1 can also be applied to, for example, an application that assembles a workpiece by a robot hand.

[0032] "Pick and place" represents a series of operations of gripping, transporting, and placing by a robot, where when the transported workpiece reaches a predetermined tracking area, the workpiece in the tracking area is gripped by the robot, transported to a predetermined area, and placed in the predetermined area.

[0033] The transport unit for workpiece transport is typically a conveyor, but is not limited to this. The PLC controls an actuator for driving the conveyor. In this embodiment, the actuator is exemplified by, for example, a servo motor.

[0034] Fig. 1 is a schematic diagram showing an application example of a simulation device 1 according to the present embodiment. Referring to Fig. 1, simulation device 1 includes virtual space information 105 that defines a virtual space and objects arranged in the virtual space. The behavior of each object in the virtual space is calculated, and the content of virtual space information 105 is updated as appropriate.

[0035] The simulation device 1 includes a PLC simulator 152 that calculates the behavior of the workpiece transport section in a virtual space, a robot emulator 160 that calculates the behavior of a robot placed in the virtual space, a physical simulator 156 that mainly calculates the behavior of the robot hand attached to the robot, and a 3D (3-dimensional) visualizer 164.

[0036] The PLC simulator 152 calculates the behavior of targets (hereinafter referred to as objects) corresponding to equipment related to the transport of workpieces in the virtual space, such as conveyors, and outputs operation commands according to the calculated behavior. Equipment related to the transport of workpieces includes, but is not limited to, conveyor driving equipment. Trays for placing workpieces are placed on the transport surface of the conveyor belt. These pieces of equipment related to the transport of workpieces correspond to third equipment, and objects placed in the virtual space corresponding to such equipment related to the transport of workpieces correspond to third targets, and the PLC simulator 152 corresponds to a third behavior calculation unit.

[0037] The robot emulator 160 calculates the behavior of an object in the virtual space corresponding to the robot handling the workpiece, based on the above-mentioned operation command output from the PLC simulator 152. The robot corresponds to the first device, the object corresponding to the robot corresponds to the first target, and the robot emulator 160 corresponds to the first behavior calculation unit.

[0038] The physical simulator 156 calculates the behavior of an object in the virtual space corresponding to the robot hand attached to the robot, based on the behavior of the object in the virtual space calculated by the PLC simulator 152 and the robot emulator 160. The robot hand corresponds to the second device, the object corresponding to the robot hand corresponds to the second target, and the physical simulator 156 corresponds to a second behavior calculation unit.

[0039] The 3D visualizer 164 generates an image that visualizes the virtual space in which the object is placed. In this embodiment, the 3D visualizer 164 generates an image for displaying each object on a display, for example, in a three-dimensional virtual space, based on the virtual space information 105. The 3D visualizer 164 corresponds to an image generation unit.

[0040] In the simulation device 1, for example, at each predetermined time step set by the user, the first behavior calculation unit (robot emulator 160) calculates the behavior of an object placed in a virtual space corresponding to the robot, and then the second behavior calculation unit (physical simulator 156) calculates the behavior of an object in the virtual space corresponding to a robot hand attached to the robot based on the calculated robot behavior. This makes it possible to estimate the behavior of the robot itself in the virtual space and the behavior of the robot hand attached to the robot in the virtual space. Furthermore, at a certain time step, the behavior of an object in the virtual space corresponding to the robot is calculated, and the behavior of an object in the virtual space corresponding to the robot hand is calculated based on the calculated behavior.

[0041] By linking these components and modules together, the simulation device 1 can estimate the behavior of each piece of equipment that would occur when a first piece of equipment and a second piece of equipment attached to the first piece of equipment process work in a real system, even if the real system does not exist.

[0042] According to FIG. 1, in a time step, the physical simulator 156 and the robot emulator 160 are synchronized, so that the behavior calculated each time the simulation is executed can be synchronized, and an accurate tact time estimate can be obtained by the simulation.

[0043] <B. Example of Target System> The simulation device 1 estimates the behavior of a device that is an actual machine controlled by the control system 2 provided in the production line. As devices for which such behavior estimation is performed, in the embodiment, a movable conveyor 230 and a robot 30 are exemplified, but the target machines are not limited thereto. The robot 30 has a robot hand 210 detachably attached to the tip of its arm via a connector 7. The robot hand 210 includes a plurality of types such as, for example, a parallel hand, a multi-finger hand, and a multi-finger articulated hand. The type of the robot hand 210 is not limited thereto, and may include, for example, a type that picks and places the work 232 by an adsorption method. A robot hand 210 of a type corresponding to the work 232 or the process is attached to the robot 30.

[0044] The robot 30 picks up the work 232 placed on the tray 9 on the conveyor 230 with the robot hand 210, and moves the work 232 to the table 55 at a predetermined position while holding it and places it on the table 55 (places it). The opening and closing operation of the hand for picking or placing the work 232 is controlled for the robot hand 210 in accordance with a control command from a robot controller 310 described later.

[0045] The control system 2 further includes a photoelectric sensor 6 and an openable and closable stopper 8 in relation to the conveyor 230. The photoelectric sensor 6 detects that the tray 9 provided on the conveyance surface of the conveyor 230 has reached in front of a predetermined work tracking area. The stopper 8 performs a closing operation to stop (fix) the tray 9 that has reached within the tracking area. The simulation device 1 performs simulations of the devices provided in these actual machines.

[0046] 2 is a diagram showing an example of the appearance of a device to be simulated according to this embodiment in association with a control system. Referring to FIG. 2, the control system 2 includes an information processing device 100, a PLC 200, a robot controller 310 that controls a robot 30, and servo motor drivers 531 and 532. The information processing device 100 includes, for example, a terminal device such as a personal computer (PC) or a tablet terminal. The servo motor drivers 531 and 532 drive corresponding servo motors 41 and 42.

[0047] The information processing device 100 is connected to the PLC 200 via a network 80. Any wired or wireless communication means may be used for the network 80. The PLC 200 and the information processing device 100 communicate with each other, for example, via a Universal Serial Bus (USB). The information processing device 100 provides a simulation environment for simulating the behavior of the control system 2 and an environment for designing a control program for controlling the robot 30 and machines related to transportation. The control program may be designed using the results of the simulation. The control program designed on the information processing device 100 is sent to the PLC 200 via a field network.

[0048] The PLC 200 executes the designed control program and controls the robot 30 and machinery related to the transport of the conveyor 230 by providing target values ​​to the robot controller 310 or servo motor drivers 531 and 532 according to the execution results.

[0049] The PLC 200 is connected to a robot controller 310 and servo motor drivers 531 and 532. The PLC 200, robot controller 310, and servo motor drivers 531 and 532 are connected in a daisy chain via a field network 22. For example, EtherCAT (registered trademark) is used for the field network 22. However, the field network 22 is not limited to EtherCAT.

[0050] Similarly, servo motor drivers 531 and 532 drive servo motors 41 and 42 of the conveyor 230. Encoders 236 and 238 are disposed on the rotation axes of the servo motors 41 and 42. The encoders output the positions (rotation angles), rotation speeds, cumulative rotation numbers, etc. of the servo motors 41 and 42 to the PLC 200 as feedback values ​​for the servo motors 41 and 42.

[0051] The robot 30 and the conveyor 230 work together to move the workpiece 232. For simplicity, the movement of the workpiece 232 will be described here, but the present invention is not limited to this movement. For example, the robot 30 may process the workpiece 232 placed on a tray 9.

[0052] 2 illustrates servo motors 1301-1304 (hereinafter collectively referred to as "robot servo motors") provided on the robot 30 and a robot controller 310 that drives the robot servo motors as an example of a drive device for the robot 30. Similarly, as an example of a drive device for the conveyor 230, servo motor drivers 531 and 532 that drive servo motors 41 and 42 provided on the conveyor 230 are illustrated. When the robot 30 is driven, its behavior changes within a three-dimensional space defined by orthogonal X-, Y-, and Z-axes. When the conveyor 230 is driven, its behavior is determined in the same three-dimensional space as the robot 30, but is determined within the plane of the X- and Y-axes.

[0053] The drive device is not limited to a servo driver, but a drive device corresponding to the motor to be driven may be adopted. For example, when driving an induction motor or a synchronous motor, an inverter drive or the like may be adopted as the drive device.

[0054] The robot controller 310 drives the robot servo motors of the robot 30. An encoder (not shown) is disposed on the rotation axis of each robot servo motor. The encoder outputs, as feedback values of the robot servo motor, the position (rotation angle), rotation speed, cumulative rotation number, etc. of the servo motor to the robot controller 310.

[0055] <C. Control and Position in Virtual Space> Referring to FIG. 2, the control of the robot 30 and the conveyor 230 in the control system 2 will be described. As described above, 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 servo motor. Specifically, the robot 30 has a plurality of arms that are driven by the rotation of robot servo motors (servo motors 1301 to 1304). Each robot servo motor drives the corresponding arm by rotating. By the robot controller 310 controlling the driving of the robot servo motor, each arm is driven three-dimensionally. By driving each arm in this way, the behavior of the robot 30 is realized. Similarly, the conveyor 230 and the tray 9 on the conveyor surface also move when the servo motors 41 and 42 rotate. This amount of movement (such as the speed, direction, and distance of movement) is determined by the amount of rotation (direction and angle of rotation) of the servo motors 41 and 42. By driving the servo motors 41 and 42 in this way, the behavior of devices such as the conveyor 230 and the tray 9 is realized.

[0056] In the embodiment, each arm 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 control system 2 controls according to the target position converted into a time series of each axis of the robot 30, whereby the speed and trajectory of the movement of each arm change so as to be the speed and trajectory according to the target.

[0057] The target position of the robot 30 is stored in advance in, for example, the PLC 200. The robot controller 310 receives the target position from the PLC 200, determines the amount of rotation of each robot servo motor based on the received target position, and outputs a command value specifying the determined amount of rotation to each robot servo motor.

[0058] (c1. Coordinate system of 3D virtual space) An example of a process for calculating the positions of axes corresponding to each arm of the robot 30 in a three-dimensional virtual space will be described. In this embodiment, the coordinate system in the three-dimensional virtual space is a world coordinate system shared by the robot 30, the PLC 200, and other components. When calculating the position in the world coordinate system, in this embodiment, the rotation amount of the servo motor 1301 is represented as αA, the rotation amount of the servo motor 1302 as αB, the rotation amount of the servo motor 1303 as αC, and the rotation amount of the servo motor 1304 as αD. By performing a calculation using a predetermined function on the servo motor rotation amounts (αA, αB, αC, αD), the servo motor rotation amounts (αA, αB, αC, αD) can be converted into positions in the three-dimensional virtual space of x, y, and z. While FIG. 2 shows three-dimensional coordinates P (x, y, z), which are the positions in the world coordinate system corresponding to the three-dimensional virtual space of the axis of the arm that picks the workpiece 232, for example, the corresponding three-dimensional coordinates of the other axes can be calculated in a similar manner. Therefore, the behavior of the robot 30 in the three-dimensional virtual space can be indicated by the time-series changes in the three-dimensional coordinates P(x, y, z) of each arm.

[0059] Also, in the embodiment, for simplicity of explanation, the three-dimensional coordinates P(x, y, z) of the axis of the arm that picks up the workpiece 232 are used to calculate the position of an object corresponding to the robot hand 210 for detecting a "collision" in a three-dimensional virtual space, which will be described later. Note that, for detecting such a "collision," the three-dimensional coordinates P(x, y, z) of another axis may be used, or a combination of the three-dimensional coordinates P(x, y, z) of two or more axes may be used.

[0060] As with the robot 30, the conveyor 230 also changes its movement speed and trajectory over time to indicate a target position so that the behavior of the conveyor 230 indicates a target behavior. The target position of the conveyor 230 is stored in the PLC 200 in advance.

[0061] The servo motor drivers 531, 532 determine the rotation amounts of the servo motors 41, 42 based on the target positions from the PLC 200, and output command values ​​specifying the determined rotation amounts to the servo motors 41, 42. By performing a calculation using a predetermined function on the rotation amounts of the servo motors 41, 42, the conveyor 230 can also be converted into a three-dimensional coordinate Q(x, y, 0) in a world coordinate system corresponding to the same three-dimensional virtual space as the robot 30. The behavior of the conveyor 230 in the three-dimensional virtual space can be indicated by the time-series change in the three-dimensional coordinate Q(x, y, 0). In this embodiment, the position of the conveyor 230 in the three-dimensional virtual space determines the position of the tray 9 placed on the conveyor 230's transport surface and the position of the workpiece 232 placed on the tray 9.

[0062] Here, since the conveyor 230 behaves within a plane, the z axis of the three-dimensional coordinate Q is fixed at a value of 0, but may be another fixed value.

[0063] (c2. Time synchronization control) Time synchronization in the control system 2 will be described with reference to Fig. 2. In the control system 2, the multiple devices connected to the field network 22, namely the PLC 100, robot controller 310, servo motor drivers 531 and 532, and robot hand 210, each have timers 90 to 94 that are time-synchronized with each other, and the devices operate based on these timers, thereby synchronizing the timing of sending and receiving data including control commands. These timers correspond to counters that are incremented or decremented synchronously.

[0064] Note that in this embodiment, "timing" represents the concept of the period, time, or moment when some event occurs. Also, "time synchronization" means synchronizing the timers, time data, etc. of each device with each other.

[0065] <D. Overall Configuration of Control System> FIG. 3 is a schematic diagram showing an example of the unit configuration of the control system 2 according to this embodiment. FIG. 3 shows the overall configuration of the control system 2 having the configuration of FIG. 2.

[0066] Referring to FIG. 3, the control system 2 includes a PLC 200, servo motor drivers 531 and 532 and a remote IO terminal 5 connected to the PLC 200 via a field network 22, a robot controller 310, and IO devices provided in the field, for example, a photoelectric sensor 6, a proximity sensor 87 including a stopper 8, and encoders 236 and 238.

[0067] The PLC 200 includes arithmetic units 13 that execute main arithmetic processing, one or more IO units 14, and a special unit 17. These units are configured to be able to exchange data with each other via a system bus 81 and are supplied with power from a power supply unit 12. A simulation device 1 is connected to the arithmetic unit 13.

[0068] The IO unit 14 collects detection values ​​61, 71, 237, and 239 from IO devices including the photoelectric sensor 6, the proximity sensor 87 for the stopper 8, and the encoders 236 and 238. The proximity sensor 87 detects, in a non-contact manner, that the tray 9 has approached the stopper 8 to a predetermined distance. The detection value from each IO device is set (written) to, for example, a corresponding bit in a memory provided in the IO unit 14. The arithmetic unit 13 executes a control program operation using the values ​​collected by the IO unit 14 and sets (writes) the value of the operation result to the corresponding bit in the IO unit 14. The peripheral devices or IO devices operate by referring to the value of each bit in the IO unit 14. In this way, the PLC 200 can control the robot 30 or the conveyor 230, which is the control target, while exchanging data with the IO devices and peripheral devices via the IO unit 14.

[0069] The special unit 17 has functions that are not supported by the IO unit 14, such as input / output of analog data, temperature control, and communication using a specific communication method.

[0070] The field network 22 may be connected to a robot controller 310, servo motor drivers 531 and 532, and a remote IO terminal 5. The remote IO terminal 5 basically performs general input / output processing, similar to the IO unit 14. More specifically, the remote IO 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 be able to exchange data with each other via a remote IO terminal bus 51.

[0071] The servo motor drivers 531 and 532 are connected to the arithmetic unit 13 via the field network 22, and drive the servo motors 41 and 42 according to the command values from the arithmetic unit 13. Specifically, the servo motor drivers 531 and 532 receive command values such as position command values, speed command values, and torque command values at a fixed cycle such as a control cycle synchronized with the timer 90 from the PLC 200. The arithmetic unit 13 generates these command values based on the detection values 237 and 239 from the encoders 236 and 238.

[0072] The arithmetic unit 13 refers to the detection values from the above-described IO devices and executes a predetermined control program to cause the robot 30 to perform pick and place. Specifically, when the arithmetic unit 13 detects from the detection value 61 of the photoelectric sensor 6 and the detection value 71 of the proximity sensor 87 that the workpiece 232 has approached a predetermined tracking area, the arithmetic unit 13 generates a control command 211 for the robot arm for performing pick and place and a control command 222 for the robot hand 210, and outputs them to the robot 30 via the robot controller 310. When generating the control command 211, in addition to the detection values 61 and 71 from the above-described IO devices, the state value of the robot 30 is referred to.

[0073] <E. Hardware Configuration> Next, an example of the hardware configuration of the simulation device 1 according to the present embodiment will be described.

[0074] FIG. 4 is a schematic diagram showing an example of the hardware configuration for realizing the simulation device 1 according to the present embodiment. The simulation device 1 is realized by the information processing device 100 as shown in FIG. 4 executing a necessary program.

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

[0076] The information processing device 100 has an optical drive 112 and reads various programs from a computer-readable recording medium 114, including an optical recording medium (e.g., a DVD (Digital Versatile Disc)) that non-transiently stores computer-readable programs, and installs the programs in storage 111, etc.

[0077] The various programs executed by the information processing device 100 may be installed via a computer-readable recording medium 114, or may be installed by downloading them via a network interface 110 from a server device (not shown) on the network.

[0078] The storage 111 is configured by, for example, an HDD (Hard Disk Drive) or an SSD (Flash Solid State Drive), and stores programs to be executed by the processor 102. Specifically, the storage 111 stores, as simulation programs for realizing the simulation according to this embodiment, a virtual time generation program 120, a relay program 121, a physics simulation program 122, a PLC simulation program 126, a robot emulation program 130, and an integration program 134. The storage 111 further stores an image processing program 136 that generates images that display objects placed in a virtual space.

[0079] The virtual time generation program 120 generates virtual time for a simulation. The simulation device 1 executes a simulation periodically based on the virtual time.

[0080] The physics simulation program 122 calculates the behavior of objects corresponding to equipment that operates in relation to the movement of the workpiece 232. Equipment whose corresponding object behavior 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 that are related to the transportation or movement of the workpiece 232. The physics simulation program 122 is provided with physics simulation parameters 124 that include parameters for defining the behavior of the objects corresponding to such equipment and parameters for defining the weight, shape, etc. of the workpiece 232. The values ​​of the physics simulation parameters 124 may be changed as appropriate by user operation, the integrated program 134, or the like.

[0081] CAD (Computer Aided Design) data of the workpiece 232 and equipment related to the transport or movement of the workpiece 232 may be used as the physical simulation parameters 124. By using CAD data, the behavior of the actual equipment can be reproduced more accurately using objects.

[0082] The PLC simulation program 126 calculates the positions of the equipment and workpieces 232 whose corresponding object behaviors are calculated by the physics simulation program 122. The calculated positions are provided to the physics simulation program 122. The PLC simulation program 126 is provided with PLC parameters 128 including parameters necessary for calculating the positions.

[0083] The robot emulation program 130 functions as a simulator that reproduces the behavior of the robot 30 using an object. The robot emulation program 130 reproduces the pick-and-place of the workpiece 232 by the robot 30 based on the results (behavior of the object) calculated by the physical simulation program 122. The robot emulation program 130 is provided with robot parameters 132 including parameters necessary to reproduce the behavior of the robot 30 using the corresponding object.

[0084] The relay program 121 provides a relay function for exchanging data between the physics simulation program 122 and the robot emulation program 130. The relay program 121 is written, for example, in script commands, although this is not a limitation.

[0085] The integration program 134 executes processing for linking the physics simulation program 122, the PLC simulation program 126, the robot emulation program 130, and the relay program 121. Specifically, the integration program 134 generates and updates virtual space information 105, which describes the states of objects in the virtual space, typically on the main memory 104. The physics simulation program 122, the PLC simulation program 126, and the robot emulation program 130 refer to (read) the virtual space information 105 to execute the processing of each simulation, and reflect necessary information from the execution results in the virtual space information 105. The functions provided by the integration program 134 reproduce the behavior and processing of devices in the control system 2, which includes a device that transports a workpiece 232 and a robot 30 that moves the workpiece 232 by pick-and-place.

[0086] The image processing program 136 is provided with 3D visualize data 135 to be displayed on the display 109 based on the virtual space information 105. The 3D visualize data 135 includes trajectory data 252 and image data 253. The image data 253 includes data for rendering objects corresponding to the equipment being simulated, and the trajectory data 252 includes three-dimensional coordinates P(x, y, z) calculated using a predetermined function for the position of each equipment in the virtual space information 105, as well as time-series data. Using this 3D visualize data 135, the image processing program 136 generates image data for stereoscopically rendering the behavior of the target objects in a three-dimensional virtual space, including the workpiece 232, the equipment related to the transport of the workpiece 232, the robot 30, and the robot hand 210 attached to the robot 30, and outputs the image data to the display 109. As a result, objects are displayed on the display 109 according to the behavior calculated by the simulation, thereby reproducing the behavior of the equipment in the control system 2. The image data 253 may include CAD data, etc.

[0087] FIG. 4 shows an example of implementing the simulation device 1 with a single information processing device 100, but the simulation device 1 may be implemented by linking a plurality of information processing devices. In this case, a part of the processing necessary for implementing the simulation device 1 may be executed by the information processing device 100, and the remaining processing may be executed by a server (cloud) or the like on a network.

[0088] FIG. 4 shows an example in which the simulation device 1 is implemented by the processor 102 executing one or more programs. However, a part of the processing and functions necessary for implementing the simulation device 1 may be implemented using an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array).

[0089] <F. Functional Configuration> Next, FIG. 5, which illustrates an example of the functional configuration of the simulation device 1 according to the present embodiment, is a schematic diagram showing an example of the functional configuration for implementing the simulation device 1 according to the present embodiment. The functions shown in FIG. 5 are typically realized by the processor 102 of the information processing device 100 executing programs (such as a virtual time generation program 120, a relay program, 121, a physical simulation program 122, a PLC simulation program 126, a robot emulation program 130, an integration program 134, and an image processing program 136).

[0090] Referring to FIG. 5, as functions included, the simulation device 1 includes a virtual space information management module 150, a PLC simulator 152, a cycle generation module 154, a physical simulator 156, a relay module 158, a robot emulator 160, and a visualizer 164.

[0091] The virtual space information management module 150 is realized by executing the integrated program 134 (Figure 4), and manages the virtual space information 105 that specifies the behavior (position, posture, etc.) of each object in the virtual space in which the simulation is performed.

[0092] The PLC simulator 152 is realized by executing the PLC simulation program 126 (FIG. 4), and calculates the behavior of objects corresponding to equipment related to the transportation of the workpiece 232 in accordance with the physical simulation parameters 124. The information calculated by the PLC simulator 152 is reflected in the virtual space information 105.

[0093] The PLC simulator 152 is a program that estimates the behavior of equipment involved in the transportation of the workpiece 232, and corresponds to a simulation program that includes multiple instructions included in the PLC program. These multiple instructions may include a group of instructions for controlling the behavior of the equipment involved in the transportation included in the PLC program. The PLC program is written in, for example, a cyclic execution language (e.g., a programming language written in ladder logic).

[0094] Each time these commands of the PLC simulator 152 are executed based on the data of the virtual space information 105, command values ​​for controlling, for example, the servo motors 41 and 42 of the conveyor 230 are generated and stored in the virtual space information 105. Such command values ​​are shown as shared data 12A (FIG. 1).

[0095] The robot emulator 160 calculates the behavior of the robot 30 that moves a workpiece 232 placed in a virtual space. More specifically, the robot emulator 160 is realized by executing the robot emulation program 130 (FIG. 4) based on the robot parameters 132. 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 performs a simulation by regarding the arm of the robot 30 and the robot hand 210 attached to the end of the arm as an integrated rigid body.

[0096] Specifically, the robot emulation program 130 includes a set of instructions included in the program of the robot controller 310. The set of instructions includes robot program commands having command codes for causing the robot 30 to operate the workpiece 232. These commands include commands for calculating a target trajectory of the robot 30 based on the shared data 12A (including output data of the PLC simulator 152) of the virtual space information 105, and for calculating command values ​​indicating the behavior of each axis based on the calculated trajectory.

[0097] When the instructions of the robot emulator 160 are executed based on the data of the virtual space information 105 (including the output data from the PLC simulator 152), command values ​​for each axis of the robot 30 are generated and stored as data in the virtual space information 105. Such command values ​​are shown as shared data 12A (FIG. 1).

[0098] In this way, the command values ​​generated by the PLC simulator 152 and the robot emulator 160 can indicate the estimated behavior of the robot 30 and the equipment involved in the transport of the workpiece 232 on the conveyor 230 (such as the servo motors 41 and 42 of the conveyor 230). Furthermore, the PLC simulator 152 and the robot emulator 160 each calculate new command values ​​based on the command values ​​calculated by the other via the shared data 12A of the virtual space information 105. Therefore, the behavior of the servo motors estimated from the command values ​​calculated in this way can indicate the mutually coordinated operation of the robot 30 and the equipment involved in the transport of the workpiece 232.

[0099] The workpiece behavior simulator 155 calculates the behavior of one or more workpieces 232 objects placed in a virtual space. Specifically, the workpiece behavior simulator 155 is realized by executing the physical simulation program 122 (FIG. 4), and calculates and updates the behavior of the workpiece 232 placed in the virtual space in accordance with information on the behavior of the object corresponding to the transport device of the workpiece 232 obtained by the PLC simulator 152. When calculating the behavior of the workpiece 232, the workpiece behavior simulator 155 calculates the position, posture, movement speed, movement direction, etc. of the workpiece 232. The position and posture of the workpiece 232 are calculated based on workpiece parameters arbitrarily set by the user, etc. The information on the position and posture of the workpiece 232 calculated by the workpiece behavior simulator 155 is reflected in the virtual space information 105. The workpiece parameters can also be included in the physical simulation parameters 124.

[0100] The physics simulator 156 is realized by executing the physics simulation program 122 (FIG. 4). The physics simulator 156 calculates the behavior (position, posture, movement speed, movement direction, etc.) of objects corresponding to equipment for transporting or moving the workpiece 232 in accordance with the physics simulation parameters 124, and detects collisions between these objects in virtual space. The collision detection results are output to the PLC simulator 152 or the robot emulator 160.

[0101] The physics simulator 156 detects whether or not objects collide with each other based on the positional relationships between the objects calculated in the virtual space. A "collision" may include, for example, a situation in which the distance between the coordinate P of an object and the coordinate Q of another object in the virtual space is a specific distance, including a distance equal to or less than a threshold. Alternatively, it may include a situation in which a trajectory connecting a coordinate P and a subsequent coordinate P intersects with a trajectory connecting the corresponding coordinate Q and the subsequent coordinate. The threshold is a value based on the size (width, height, etc.) of each object, and the threshold or the size of the object may be included in the physics simulation parameters 124, for example. Note that the positional relationships for detecting a "collision" are not limited to these positional relationships.

[0102] 6 is a diagram illustrating the object of simulation by the physics simulator 156 according to this embodiment. As shown in FIG. 6, the objects whose behaviors are calculated by the physics simulator 156 and whose collisions are detected include a photoelectric sensor 6, a stopper 8, a tray 9, a robot hand 210, a conveyor 230, and a workpiece 232. The physics simulator 156 calculates the behaviors of these objects, such as the position and posture, according to a predetermined physics calculation, and detects collisions of the objects based on the calculated behaviors, such as the position. The physics simulator 156 performs calculations by setting the mass parameter of the object, among the parameters used in this physics calculation, to zero.

[0103] The significance of setting the mass to zero is as follows. That is, if the mass parameter is not zero, the physics simulator 156 calculates, for each object, components of mechanical actions on the object, such as velocity, acceleration, and gravity, based on the mass of the object, through physics calculations, and the physics simulator 156 calculates (updates) the position of the object in the next time step based on the calculated components of mechanical actions. Meanwhile, in this embodiment, the PLC simulator 152 and the robot emulator 160 determine (control) the position of each object. Therefore, in order to zero (disable) the update components of the object's position by the physics simulator 156, the mass parameter of each object used in the physics calculations of the physics simulator 156 is set to zero.

[0104] For objects whose position (behavior) is calculated using physics calculations with a mass of zero, the velocity, acceleration, gravity, etc. are also zero. Therefore, even if these objects collide with each other, the physics calculations calculate the mechanical components (components such as the object bouncing back, such as repulsion) to be zero (nullified), so the collision of objects can be detected based on the position of the object whose mechanical effects have been nullified.

[0105] The workpiece tracking module 162 is realized by executing the robot emulation program 130, and tracks the workpiece 232 picked and placed by the robot 30 in the virtual space based on behavior information of the robot 30 from the robot emulator 160. The position information (workpiece position) of the workpiece 232 tracked by the workpiece tracking module 162 is reflected in the virtual space information 105.

[0106] The 3D visualizer 164 corresponds to an image generation unit that generates an image that visualizes the virtual space. The 3D visualizer 164 visualizes the behavior of each object in the virtual space (such as the workpiece 232, equipment related to the transport of the workpiece 232, the robot 30, and the robot hand 210) based on the virtual space information 105 managed by the virtual space information management module 150.

[0107] The period generating module 154 is realized by executing the virtual time generating program 120. Based on the output of a timer (not shown) included in the processor 102, the period generating module 154 outputs a signal ST synchronized with the output of the timer to each of the other components. Each component executes a process or program in synchronization with the period (hereinafter referred to as a predetermined time step) at which the signal ST is output from the period generating module 154. As a result, each component in FIG. 5 executes in synchronization with each other at each predetermined time step. The period of the signal ST may be determined based on the communication period (hereinafter also referred to as a "control period") of the field network 22 of the control system 2 in FIG. 3.

[0108] By linking the various functions shown in FIG. 5 together, the behavior of the system to be simulated (for example, the control system 2) can be reproduced with high accuracy.

[0109] <G.シミュレーション> FIG. 7 is a diagram schematically illustrating an example of a processing sequence of the simulation device 1 according to this embodiment. In FIG. 7, the processing of each unit of the simulation device 1 is shown in association with data or commands exchanged between the period generation module 154, the PLC simulator 152, the robot emulator 160, the relay module 158, and the physical simulator 156. The data exchanged between these units includes positions corresponding to coordinates in a world coordinate system shared between these units. Furthermore, the exchanged data or commands may include data or commands exchanged via virtual space information 105. However, for the sake of explanation, the virtual space information 105 and the virtual space information management module 150 are not shown in FIG. 7.

[0110] 7, the simulation device 1 sets the mass parameters of the objects corresponding to the workpiece 232 and the equipment involved in the transport or movement of the workpiece 232 shown in FIG. 6, among the physical simulation parameters 124, to zero (step T1). Then, each unit is started to start the processing from step T2 onwards. The processing of step T2 is repeatedly executed for each predetermined time step based on the signal ST output by the period generation module 154. The 3D visualizer 164 executes processing (step T3) to generate an image for rendering a 3D image on the display 109 for each period longer than the time step. This enables the simulation device 1 to generate a 3D image showing the simulation result based on the virtual space information 105 and the 3D visualization data 135 showing the result of repeatedly executing the periodic processing of step T2 multiple times, and display the generated image on the display 109.

[0111] When the period generating module 154 receives a start command from the user via the operation unit 106, it is started and starts outputting a signal ST. This starts the periodic processing of step T2. Furthermore, at the start of the periodic processing, the relay module 158 outputs a command to the physical simulator 156 to initialize the positions (coordinates) of objects (step S1). In accordance with this command, the physical simulator 156 sets the positions (coordinates) of each object to the initial positions contained in the virtual space information 105.

[0112] When the periodic processing (step T1) starts, the periodic generation module 154 outputs a command Tick to drive the servo motors (step S3). The PLC simulator 152 executes a simulation program in accordance with the command Tick from the periodic generation module 154, generates and outputs a command Tick to put the robot 30 on standby (step S5), and sets the input variable of the photoelectric sensor 6 to ON (step S9). As a result, a series of behaviors is calculated in which the servo motors 41 and 42 are driven to move the conveyor 230, and the position of the conveyor 230 is detected by the photoelectric sensor 6.

[0113] The PLC simulator 152 further updates the position of the tray 9 on the conveyance surface in accordance with the movement of the conveyor 230 (step S11). In response to the update, the physical simulator 156 performs a calculation process for collision detection (step S13). Specifically, the physical simulator 156 updates the position of the tray 9 object set in step S1 by overwriting it with the updated position of the tray 9 in the virtual space information 105, and detects the presence or absence of the above-mentioned collision in the world coordinate system based on the updated position of the tray 9 and the position of the photoelectric sensor 6 (step S13). Here, the physical simulator 156 detects a collision between the tray 9 and the photoelectric sensor 6 objects. The physical simulator 156 outputs a signal indicating that a collision between the tray 9 and the photoelectric sensor 6 has been detected (step S15).

[0114] In response to the above collision detection output from the physical simulator 156, the PLC simulator 152 updates (changes) the position of the tray 9 so that the tray 9 approaches the stopper 8 (step S19), and outputs a command to close the stopper 8 (i.e., update the position of the stopper 8) (step S23).

[0115] In response to the command in step S23, the physical simulator 156 performs a calculation process for collision detection (step S25). Specifically, the physical simulator 156 updates the positions of the stopper 8 and tray 9 objects set in step S1 by overwriting them with the updated positions of the virtual space information 105, and detects the presence or absence of the above-mentioned collision in the world coordinate system based on the updated positions of the tray 9 and stopper 8 (step S25). Here, the physical simulator 156 detects a collision between the tray 9 and stopper 8 objects. The physical simulator 156 outputs a signal indicating that a collision between the tray 9 and stopper 8 has been detected (step S29).

[0116] In response to the output from the physical simulator 156 (detection of the collision of the tray 9 with the stopper 8), the PLC simulator 152 outputs a command to the robot 30 to set the position of the workpiece 232 (step S33). This position of the workpiece 232 indicates a position based on the position of the tray 9 after update in step S19.

[0117] In response to the command output from the PLC simulator 152 in step S33, the relay module 158 starts processing to relay the exchange of data between the physical simulator 156 and the robot emulator 160 to calculate the behavior of the robot hand 210 picking up the workpiece 232 (step S35).

[0118] Specifically, the relay module 158 outputs a command to have the robot hand 210 pick the workpiece 232 (step S39). In response to the command output from the relay module 158, the robot emulator 160 updates the position of the robot hand 210 based on the position of the workpiece 232 (step S43).

[0119] The physical simulator 156 executes a collision detection calculation based on the updated positions of the robot hand 210 and the workpiece 232 (step S45), and detects whether the robot hand 210 has collided with the workpiece 232 based on the calculation result.

[0120] The relay module 158 determines that the robot hand 210 has collided with the workpiece 232 based on the output of the physical simulator 156 (step S47). In response to the determination, the relay module 158 groups (associates with each other) information related to the behavior of the robot hand 210 and the workpiece 232 objects in the virtual space information 105 (step S49). The relay module 158 then sets a variable indicating that the hand of the robot hand 210 is closed to ON (step S53).

[0121] In response to the relay module 158 setting the hand variable of the robot hand 210 to ON, the PLC simulator 152 outputs a command to move the workpiece 232 while it is being picked up to the place location (the position of the table 55) (step S55). The position of the table 55 is set in the robot emulator 160. This ends the processing in the corresponding time step of step T2.

[0122] In response to the command from the PLC simulator 152 (the command in step S55), the robot emulator 160 outputs a command to update the positions of the robot hand 210 and the workpiece 232 to the physical simulator 156 (step S57), and also outputs a notification of the completion of the placing to the relay module 158 (step S61). In response to the command from the robot emulator 160 (step S57), the physical simulator 156 updates the positions of the robot hand 210 and the workpiece 232 possessed by the physical simulator 156 so that they correspond to the placed positions.

[0123] Thereafter, in the next time step, the processing of step T2 is executed in the same manner as described above.

[0124] In step T3, the 3D visualizer 164 acquires from the physical simulator 156 the positions of the workpiece 232 and each device (FIG. 5) calculated by the physical simulator 156 (step S73), performs rendering processing based on the acquired positions and the 3D visualize data 135 including data of the corresponding objects indicated by the image data 253 (step S75), and acquires from the virtual space information 105 the position indicated by the behavior of the robot 30 calculated by the robot emulator 160 (step S77). The 3D visualizer 164 generates data for an image to be drawn on the display 109 from the object data after rendering processing and the position of the robot 30.

[0125] In the sequence of FIG. 6, in each of the collision detection processes (steps S13, S25, and S45) in the physical simulator 156, when no collision is detected, the following process in step T2 may be skipped.

[0126] As a result, the simulation device 1 can estimate the tact time when the control system 2 (FIG. 2) is driven by the simulated PLC program and robot program by counting the time steps until it is detected that the robot hand 210 has collided with the workpiece 232 (step S45).

[0127] Also, by switching the physical simulation parameters 124 referred to by the physical simulator 156 for each type of robot hand 210, one physical simulator 156 can be shared by a plurality of types of robot hands 210 mounted on the robot 30.

[0128] In addition, based on the signal ST from the period generation module 154, the PLC simulator 152, the robot emulator 160, the relay module 158, and the physical simulator 156 can be time-synchronized with each other. Therefore, when the simulation is repeatedly executed, the same collision detection can be reproduced in each simulation.

[0129] Also, in FIG. 6, the positions of the robot hand 210 and the workpiece 232 are calculated by the physical simulator 156, but these positions may be calculated by the robot emulator 160. Further, the user may specify whether to calculate these positions by either the robot emulator 160 or the physical simulator 156.

[0130] <H. Display Example> FIG. 8 is a diagram showing an example of the display according to the present embodiment. In FIG. 8, for example, a case where the processing of the 3D visualizer 164 is started when a collision of the robot hand 210 with the work 232 is detected is shown. Referring to FIG. 7, a 3D image is drawn in the region 1092 on the display 109 by the image generated by the 3D visualizer 164. A part of the simulated program is displayed in the region 1091 of the display 109 in FIG. 7. In the 3D image of the region 1092, a state where a collision 1093 of the robot hand 210 with the work 232 is detected (step S45 in FIG. 7) is shown.

[0131] <I. Combination with actual machine> FIG. 9 is a diagram schematically showing an example of the combination of the simulation device 1 according to the present embodiment and an actual machine. According to FIG. 9, the behavior of the device when a virtual device (PLC 200 or robot 30) is combined with the actual machine can be calculated. Specifically, for the PLC 200 that operates in cooperation while exchanging data (shared data 12A) with the robot 30, the simulation device 1 can use the actual machine provided in the production line as shown in FIG. 2 as the acquisition path of at least one of the data of both.

[0132] In FIG. 9, a scene where the information processing device 100 on which the simulation device 1 is mounted is connected to a PLC 200 which is an example of an actual machine via the network 80 is shown. Specifically, the actual machine PLC 200 is connected to the network 220 of the FA system, but the robot 30 is not connected. The behavior of the robot 30 is calculated by the simulation device 1 of the information processing device 100 using the data from the actual machine PLC 200.

[0133] 9, the simulation device 1 receives data indicating command values ​​to devices related to the transportation of the workpiece 232 from the operating PLC 200 of the actual machine without starting the PLC simulator 152 (instead of the PLC simulator 152), and sets the received data in the virtual space information 105 (shared data 12A). As a result, in the simulation device 1, the behavior of an object corresponding to the robot 30 operating in cooperation with the PLC 200 of the actual machine is estimated while data is exchanged between the robot emulator 160 and the PLC 200 of the actual machine via the virtual space information 105, and a collision is detected by the physical simulator 156 based on the estimated behavior.

[0134] When the simulation device 1 is combined with a real machine in this way, the control period for the operating speed of the real machine is generally shorter than the period of the time step of the simulation device 1, so the simulation device 1 adjusts the control period of the real machine to match the time step of the simulation.

[0135] Although FIG. 9 shows a combination of the actual PLC 200 and the robot emulator 160, the present invention is not limited to this, and may also be a combination of the actual robot 30 and the PLC simulator 152.

[0136] <J.ロボット30のケーブルのシミュレーション> In this embodiment, it is possible to provide a cable simulation for calculating (reproducing) the behavior of a cable accompanying the operation of the robot 30. In this embodiment, the behavior of a cable that is attached to the robot 30 and can be attached to the robot 30 and the behavior of devices related to the cable are simulated.

[0137] In FIG. 10, for example, the position of the robot hand 210 that guides the cable in the multi-joint robot 30, as well as the positions of the rings 351, 352, and 353 (also referred to as guide positions), and the cables 341, 342, and 343 that connect these adjacent guide positions are shown. The simulation device 1 detects interference between these cables and the robot 30, that is, a collision between the cables and the robot 30 (more specifically, the arm). Such rings 351, 352, and 353 and cables 341, 342, and 343 can be treated as an example of attached devices attached to the robot 30.

[0138] Specifically, when calculating the behavior of the robot 30, the robot emulator 160 calculates the position of the robot hand 210 and the positions of the rings 351, 352, and 353 (guide positions). The physical simulator 156 calculates the positions of the robot hand 210 and the rings 351, 352, and 353 by physical calculations with zero mass based on the guide positions calculated by the robot emulator 160, and based on the calculated positions, the behavior (position, posture, etc.) of the cables 341, 342, and 342 with zero mass is calculated using a predetermined function. The physical simulator 156 detects a collision (with other members (such as adjacent cables)) based on the calculated positions of the cables 341, 343, and 343.

[0139] In this way, through simulation, based on the result of collision detection of the cables 341, 342, and 343, it becomes possible to detect the appropriateness of the lengths and attachment positions (guide positions) of the cables 341, 342, and 343 even if the actual robot 30 does not exist.

[0140] <K. Appendix> The present embodiment as described above includes the following technical ideas. [Configuration 1] A simulation device (1) that calculates the behavior of a device, comprising: A first behavior calculation unit (160) that calculates the behavior of a first object arranged in a virtual space corresponding to a first device (30) to which an attached device (210) is attached; a second behavior calculation unit (158) that calculates a behavior of a second object in the virtual space corresponding to a second device, the second device includes the accessory device; a simulation device in which, at each predetermined time step (ST), the first behavior calculation unit calculates the behavior of the first object corresponding to a first device to which the accessory device is attached at that time step, and then the second behavior calculation unit calculates the behavior of the accessory device attached to the first device based on the calculated behavior of the first object. [Configuration 2] 2. The simulation device according to configuration 1, wherein the accessory device includes a device that adds an operation function for operating a workpiece to the first device when attached to the accessory device. [Configuration 3] 3. The simulation device according to configuration 1 or 2, wherein the second behavior calculation unit includes a physical simulator. [Configuration 4] the first device includes a robot; The simulation device according to Configuration 3, wherein the first behavior calculation unit executes emulation of a robot program having a command code for causing the robot to manipulate a workpiece. [Configuration 5] the behavior of the first object calculated by the first behavior calculation unit includes a position of the first object in the virtual space; 5. The simulation device according to configuration 3 or 4, wherein the physical simulator calculates the behavior of the second object based on a physical calculation using the first position calculated by the first behavior calculation unit. [Configuration 6] 6. The simulation device according to configuration 5, wherein the physics simulator performs the physics calculation by disabling generation of a force on the second object. [Configuration 7] the calculated behavior of the second object corresponding to the accessory device includes a position of the second object in the virtual space; The second behavior calculation unit further 7. The simulation device according to any one of configurations 1 to 6, wherein a collision (1093) between the second object in the virtual space of the accessory device and a predetermined object in the virtual space is detected based on the position of the second object and the position of the predetermined object in the virtual space. [Configuration 8] a third behavior calculation unit (152) that calculates a behavior of a third object placed in the virtual space corresponding to the third device (200); the third device cooperates with the first device by exchanging data with the first device; The simulation device according to any one of configurations 1 to 7, wherein the data (12A) exchanged between the first device and the third device is acquired from an actual device installed in a production line. [Claim 9] 9. The simulation apparatus of any one of configurations 1 to 8, wherein the accessory device includes a cable attachable to the first device. [Configuration 10] 10. The simulation device according to any one of configurations 1 to 9, further comprising an image generation unit (164) that generates an image that visualizes the virtual space. [Configuration 11] A simulation program for causing a computer (100) to execute a method for calculating the behavior of equipment, a first behavior calculation step of calculating a behavior of a first object placed in a virtual space corresponding to a first device to which an accessory device is attached; a second behavior calculation step of calculating a behavior of a second object in the virtual space corresponding to a second device, the second device includes the accessory device; a first behavior calculation step of calculating, for each predetermined time step, the behavior of the first object corresponding to a first device to which the accessory device is attached, and then, a second behavior calculation step of calculating, based on the calculated behavior of the first object, the behavior of the accessory device attached to the first device. [Configuration 12] A simulation method for calculating behavior of a device, comprising: a first step of calculating a behavior of a first object placed in a virtual space corresponding to a first device to which an accessory device is attached; a second step of calculating a behavior of a second object in the virtual space corresponding to a second device; the second device includes the accessory device; A simulation method, comprising: calculating, at each predetermined time step, the behavior of the first object corresponding to a first device to which the accessory device is attached in the first step; and then, in the second step, calculating the behavior of the accessory device attached to the first device based on the behavior of the first object calculated in the first step.

[0141] The embodiments disclosed herein should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is defined by the claims, not by the above description, and is intended to include all modifications within the meaning and scope of the claims. [Explanation of symbols]

[0142] 1 Simulation device, 2 Control system, 6 Photoelectric sensor, 7 Connector, 8 Stopper, 9 Tray, 12A Shared data, 13 Arithmetic unit, 30 Robot, 41, 42, 1301, 1302, 1303, 1304 Servo motor, 87 Proximity sensor, 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, 120 Virtual time generation program, 121 Relay program, 122 Physical simulation program, 124 Physical simulation parameters, 126 Simulation program, 130 Robot emulation program, 132 Robot parameters, 134 Integration program, 136 Image processing program, 150 Virtual space information management module, 152 PLC simulator, 154 Period generation module, 155 Workpiece behavior simulator, 156 Physics simulator, 158 Relay module, 160 Robot emulator, 162 Workpiece tracking module, 164 3D visualizer, 210 Robot hand, 230 Conveyor, 232 Workpiece, 236, 238 Encoder, 310 Robot controller, 341, 342, 343 Cable, 351, 352, 353 Ring, 531, 532 Servo motor driver, 1093 Collision.

Claims

1. A simulation device for calculating the behavior of equipment, a third behavior calculation unit that calculates a behavior of a third object that is arranged in a virtual space corresponding to a device involved in the transport of the workpiece; a second behavior calculation unit that calculates a behavior of a second object placed in the virtual space based on a behavior of the third object; a first behavior calculation unit that calculates a behavior of a first object placed in the virtual space based on a behavior of the second object; an image generation unit that generates an image that visualizes the virtual space; a timer for generating a virtual time for the simulation; The equipment relating to the transport of the workpiece includes a conveyor for transporting the workpiece or a tray on a transport surface accompanying the movement of the conveyor, the third object includes an object corresponding to a conveyor for conveying a workpiece or a tray on a conveyance surface accompanying the movement of the conveyor, The second target includes a target corresponding to the work transported by a device related to the transport of the work, the first target includes a target corresponding to a robot that moves the transported workpiece, the third behavior calculation unit, the second behavior calculation unit, and the first behavior calculation unit synchronously perform calculations in a time step based on the virtual time; the robot includes an accessory device that adds an operation function to the robot for operating the workpiece, The third behavior calculation unit a PLC simulator that calculates a behavior of the third object placed in the virtual space, The second behavior calculation unit a workpiece behavior simulator that calculates a behavior of an object disposed in a virtual space corresponding to the workpiece, in accordance with the behavior of the third object; a physical simulator that detects a collision between the object corresponding to the workpiece in the virtual space and the object corresponding to the accessory device based on a behavior of the object in the virtual space, The first behavior calculation unit A simulation device including a robot emulator that calculates the position of an object corresponding to the accessory device based on the behavior of the object corresponding to the workpiece in the virtual space when a collision between the two is detected.

2. 2. The simulation device according to claim 1, wherein the second behavior calculation unit detects a collision between an object corresponding to the tray on the transport surface in the virtual space and an object corresponding to a stopper that stops the tray on the transport surface based on the behavior of the object corresponding to the tray on the transport surface.

3. the behavior of the object in the virtual space includes a position of the object in the virtual space; A workpiece is placed on the tray, When the third object includes an object corresponding to a tray on a conveyance surface accompanying the movement of the conveyor, the second behavior calculation unit detects a collision between the third object corresponding to the tray and a fourth object arranged in the virtual space based on a position of the third object and a position of a fourth object arranged in the virtual space, the fourth object including an object corresponding to a sensor that detects arrival of the tray on the conveyance surface; 3. The simulation device according to claim 1, wherein the position of the second object in the virtual space is updated when a collision between the two objects is detected.

4. the virtual space has a world coordinate system, in the time step, the first behavior calculation unit, the second behavior calculation unit, and the third behavior calculation unit exchange data on the behavior of the first object, data on the behavior of the second object, and data on the behavior of the third object, respectively, via the world coordinate system; The simulation device according to claim 1 , wherein the behavior data includes a position of an object in the world coordinate system.

5. The simulation device according to claim 4 , wherein the behavior data further includes a posture of the object in the world coordinate system.

6. a PLC simulator that calculates the behavior of an object placed in a virtual space corresponding to a device involved in the transport of a workpiece; a work behavior simulator that calculates the behavior of an object placed in a virtual space corresponding to the workpiece in accordance with the behavior of the object corresponding to a device involved in the transport of the workpiece; a physics simulator that detects a collision between a behavior of a certain object in the virtual space and a behavior of another object in the virtual space; a robot emulator that calculates, when the collision is detected, a behavior of an object that is arranged in the virtual space and corresponds to a robot that moves the workpiece, based on a behavior of the object that corresponds to the workpiece in the virtual space; The equipment relating to the transport of the workpiece includes a conveyor for transporting the workpiece or a tray on a transport surface accompanying the movement of the conveyor, the certain object includes an object corresponding to the tray on the conveying surface, and the other object includes an object corresponding to a stopper that stops the tray on the conveying surface, A simulation device that executes the PLC simulator, the workpiece behavior simulator, the physical simulator, and the robot emulator in a synchronized manner in a time step.

7. 7. The simulation device according to claim 6, wherein the objects arranged in the virtual space corresponding to the robot that moves the workpiece include objects corresponding to accessory equipment that is attached to the robot to add an operating function for operating the workpiece.

8. A simulation program for causing a computer to execute a method for calculating behavior of equipment, the computer has a timer that generates a virtual time for the simulation; The method comprises: a third behavior calculation step of calculating a behavior of a third object arranged in the virtual space corresponding to a device involved in the transport of the workpiece; a second behavior calculation step of calculating a behavior of a second object placed in the virtual space based on the behavior of the third object; a first behavior calculation step of calculating a behavior of a first object placed in the virtual space based on a behavior of the second object; an image generation step of generating an image that visualizes the virtual space, The equipment relating to the transport of the workpiece includes a conveyor for transporting the workpiece or a tray on a transport surface accompanying the movement of the conveyor, The second target includes a target corresponding to the work transported by a device related to the transport of the work, the first target includes a target corresponding to a robot that moves the transported workpiece, In a time step based on the virtual time, the third behavior calculation step, the second behavior calculation step, and the first behavior calculation step are executed synchronously; the robot includes an accessory device that adds an operation function to the robot for operating the workpiece, The third behavior calculation step includes: executing a PLC simulation to calculate a behavior of the third object placed in the virtual space; The second behavior calculation step includes: executing a workpiece behavior simulation to calculate a behavior of an object disposed in a virtual space corresponding to the workpiece, in accordance with the behavior of the third object; and executing a physical simulation to detect a collision between the object corresponding to the workpiece in the virtual space and the object corresponding to the accessory device based on the behavior of the object corresponding to the workpiece in the virtual space and the behavior of the object corresponding to the accessory device in the virtual space, The first behavior calculation step includes: A simulation program including a step of executing robot emulation to calculate the position of an object corresponding to the accessory device based on the behavior of the object corresponding to the workpiece in the virtual space when a collision between the two is detected.

9. A simulation program for causing a computer to execute a method for calculating behavior of equipment, the method comprising: A step of executing a PLC simulation to calculate behavior of an object placed in a virtual space corresponding to a device involved in the transportation of a workpiece; executing a work behavior simulation to calculate the behavior of an object arranged in a virtual space corresponding to the workpiece, in accordance with the behavior of the object corresponding to a device involved in the transport of the workpiece; a step of executing a physical simulation to detect a collision between a behavior of a certain object in the virtual space and a behavior of another object in the virtual space; and when the collision is detected, executing robot emulation to calculate a behavior of an object disposed in the virtual space corresponding to a robot that moves the workpiece, based on a behavior of the object corresponding to the workpiece in the virtual space, The equipment relating to the transport of the workpiece includes a conveyor for transporting the workpiece or a tray on a transport surface accompanying the movement of the conveyor, the certain object includes an object corresponding to the tray on the conveying surface, and the other object includes an object corresponding to a stopper that stops the tray on the conveying surface, A simulation program that synchronously executes the PLC simulation, the workpiece behavior simulation, the physical simulation, and the robot emulation in a time step.

Citation Information

Patent Citations

  • Simulation device, simulation method, and simulation program

    JP2016042378A

  • Device, method, program and recording media for simulating article alignment operation done by robot

    JP2018069377A