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

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

Info

Publication number
WO2013136930A1
WO2013136930A1 PCT/JP2013/054157 JP2013054157W WO2013136930A1 WO 2013136930 A1 WO2013136930 A1 WO 2013136930A1 JP 2013054157 W JP2013054157 W JP 2013054157W WO 2013136930 A1 WO2013136930 A1 WO 2013136930A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual
machine
simulation
movement
calculated
Prior art date
Application number
PCT/JP2013/054157
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 オムロン株式会社
Priority to EP13761052.3A priority Critical patent/EP2843556B1/en
Priority to US14/385,172 priority patent/US9679405B2/en
Publication of WO2013136930A1 publication Critical patent/WO2013136930A1/ja
Priority to US15/590,051 priority patent/US10025291B2/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4069Simulating machining process on screen
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1605Simulation of manipulator lay-out, design, modelling of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41885Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23447Uses process simulator to develop, simulate faults, fault tree

Definitions

  • the present invention relates to a simulation apparatus, a simulation method, and a simulation program, and in particular, a simulation apparatus, a simulation method, and the like suitable for executing a simulation of a control program executed in a controller that controls the movement of a machine that handles an object. And a simulation program.
  • Patent Document 1 Japanese Patent Application No. 2009-123069 (hereinafter referred to as “Patent Document 1”). ”)).
  • Patent Document 1 Japanese Patent Application No. 2009-123069
  • an image captured by an actual camera is stored in advance as a registered image, and a measurement result is extracted from the registered image, so that an offline simulation can be performed.
  • the present invention has been made to solve the above-described problems, and one of its purposes is a simulation apparatus, a simulation method, and a simulation capable of realizing an integrated simulation including a visual sensor. Is to provide a program.
  • a simulation apparatus is an apparatus having a control unit that executes simulation of a control program executed in a controller that controls movement of a machine that handles an object. is there.
  • the control unit calculates a command value for moving the virtual machine based on model data of the virtual object that is handled by the virtual machine corresponding to the machine in the virtual space and corresponds to the object in accordance with the control program.
  • a calculation unit, a second calculation unit that calculates the movement of the virtual machine according to the command value calculated by the first calculation unit, and a virtual object that is moved by the movement of the virtual machine calculated by the second calculation unit The third calculation unit that calculates the movement of the object and the movement of the virtual machine calculated by the second calculation unit or the movement of the virtual object calculated by the third calculation unit are virtually captured.
  • a virtual imaging unit that generates a virtual space image obtained in the case.
  • the first calculation unit calculates a command value based further on the virtual space image generated by the virtual photographing unit.
  • the first calculation unit, the second calculation unit, the third calculation unit, and the virtual photographing unit are respectively configured to follow the same time axis, the command value, the movement of the virtual machine, and the virtual object.
  • the first calculation unit, the second calculation unit, the third calculation unit, and the virtual photographing unit are respectively configured to follow the same time axis, the command value, the movement of the virtual machine, and the virtual object.
  • control unit further includes a specifying unit that specifies a state of an object or a machine from a real space image captured by a real space visual sensor corresponding to the virtual shooting unit, and a target from the state specified by the specifying unit.
  • a fourth calculation unit for calculating the initial state of the object or machine. The first calculation unit calculates the command value using the initial state calculated by the fourth calculation unit as the state at the start of the simulation.
  • the simulation apparatus further includes a storage unit and a display unit.
  • the storage unit includes an image storage unit that stores in advance a real space image captured by a real space visual sensor corresponding to the virtual image capturing unit and a virtual space image corresponding to the real space image in association with each other.
  • the control unit further includes a display control unit that causes the display unit to display a real space image stored in the image storage unit corresponding to the virtual space image generated by the virtual photographing unit.
  • the simulation method is a method performed by a simulation apparatus having a control unit that executes a simulation of a control program executed in a controller that controls the movement of a machine that handles an object.
  • the control unit calculates a command value for moving the virtual machine based on the model data of the virtual object corresponding to the object handled by the virtual machine corresponding to the machine in the virtual space according to the control program.
  • the first step includes a step of calculating a command value based on the virtual space image generated in the virtual photographing step.
  • the simulation program is a program executed by a simulation apparatus having a control unit that executes a simulation of a control program executed in a controller that controls the movement of a machine that handles an object. .
  • the simulation program calculates a command value for moving the virtual machine based on model data of the virtual object that is handled by the virtual machine corresponding to the machine in the virtual space and corresponds to the object in accordance with the control program.
  • a virtual space image obtained when the third step of calculation and the movement of the virtual machine calculated in the second step or the movement of the virtual object calculated in the third step are virtually photographed.
  • a virtual photographing step for generating the control unit.
  • the first step includes a step of calculating a command value based on the virtual space image generated in the virtual photographing step.
  • an integrated simulation including a visual sensor can be realized. It is also possible to test when the machine is controlled using a visual sensor.
  • FIG. 1 is a diagram illustrating a configuration of a control system according to the embodiment of the present invention.
  • the control system according to the embodiment of the present invention includes a server 2, a network 4, a PC (Personal Computer) 6, a controller 14, and a control target device 16.
  • PC Personal Computer
  • the server 2 is connected to the PC 6 via the network 4.
  • the PC 6 is communicably connected to a controller 14 that controls the control target device 16.
  • PC 6 corresponds to a simulation apparatus according to an embodiment of the present invention.
  • a controller support program 8 including a simulation program is installed in the PC 6, and a control program 10 created by the user is stored.
  • a CD-ROM (Compact Disc-Read Only Memory) 12 stores a controller support program 8.
  • the controller support program 8 installed on the PC 6 is installed from the CD-ROM 12.
  • the controller 14 controls the movement of the control target device 16.
  • a PLC Programmable Logic Controller
  • the controller 14 stores a control program 15 that defines the control contents for the control target device 16.
  • the controller 14 executes the control program 15 once for each control cycle.
  • the control program 15 stored in the controller 14 is copy data obtained by copying the control program 10 stored in the PC 6, and is transmitted from the PC 6.
  • the control target device 16 includes a motor 18 such as a servo motor or a stepping motor, and a motor driver 17 that drives the motor.
  • a motor 18 such as a servo motor or a stepping motor
  • a motor driver 17 that drives the motor.
  • the motor 18 is supplied with drive current from the motor driver 17.
  • the motor driver 17 is given a position command value for each control cycle from the controller 14 that executes the control program 15, and supplies a drive current corresponding to the command value to the motor 18.
  • the motor 18 is a servo motor
  • the motor 18 is provided with an encoder, and an actual measurement value of the rotational position of the motor 18 is detected by the encoder. The measured value of the rotational position of the motor is used by the motor driver 17 for feedback control.
  • the simulation program is installed on the PC 6 via the CD-ROM 12 .
  • the present invention is not limited to this, and the simulation program is downloaded from the server 2 to the PC 6 via the network 4. Also good. The same applies to the control program.
  • FIG. 2 is a diagram illustrating a hardware configuration of PC 6 according to the embodiment of the present invention.
  • PC 6 according to the embodiment of the present invention communicates with CPU 901 that is a processing unit, ROM 902, RAM 903, and HDD 904 that are storage units, and CD-ROM drive device 908 that is a data reading unit.
  • a communication IF 909 that is a unit, a monitor 907 that is a display unit, and a keyboard 905 and a mouse 906 that are input units. These parts are connected to each other via an internal bus 910.
  • the HDD 904 is typically a non-volatile magnetic memory, and stores a simulation program read from the CD-ROM 12 by the CD-ROM drive 908. A control program 15 is also stored.
  • the CPU 901 expands the controller support program 8 according to the present embodiment stored in the HDD 904 in the RAM 903 and executes it.
  • the RAM 903 is a volatile memory and is used as a work memory.
  • the ROM 902 generally stores programs such as an operating system (OS).
  • OS operating system
  • the communication IF 909 typically supports general-purpose communication protocols such as Ethernet (registered trademark) and USB (Universal Serial Bus), and provides data communication with the server 2 via the network 4 and the controller 14. Provide data communication to and from.
  • general-purpose communication protocols such as Ethernet (registered trademark) and USB (Universal Serial Bus)
  • the monitor 907 is composed of a liquid crystal display device, a CRT (Cathode Ray Tube), a plasma display device, and the like, and displays a processing result by the PC 6.
  • the keyboard 905 accepts key input by the user, and the mouse 906 accepts pointing operation by the user.
  • FIG. 3 is a diagram for explaining functional blocks realized by the CPU 901 executing the controller support program 8.
  • a user interface unit 802 a display data creation unit 804, a simulation unit 806, a control program storage unit 808, a control program editing unit 810, and a controller interface unit 812 are shown. ing.
  • the user interface unit 802 is a part that creates the contents of the window screen to be displayed on the monitor 907 of the PC 6 and accepts user operations with the keyboard 905 and the mouse 906.
  • the control program editing unit 810 allows the user to input and edit the control program. If it is necessary to compile to execute the control program, it is also compiled.
  • the created control program is sent to the controller 14 via the controller interface unit 812.
  • the created control program is stored in a control program storage unit 808 that is a predetermined area of the HDD 904. Further, the control program editing unit 810 can read and edit the control program 15 stored in the controller 14 via the controller interface unit 812.
  • the simulation unit 806 is a simulator of the controller 14.
  • the simulation unit 806 simulates the operation of the controller 14 executing the control program 15 according to the control program 10 stored in the control program storage unit 808, and calculates the command value of the position that the controller 14 should output every control cycle. To do.
  • the simulation unit 806 simulates a state in which an external signal arrives and affects the operation of the control program, or the execution of the control program 15 itself causes the internal contents of the controller 14 to be stored in the memory of the controller 14. It is possible to simulate a state in which the state changes and the change affects the operation of the control program 15.
  • the simulation unit 806 accepts a user instruction regarding simulation execution via the user interface unit 802. That is, the user interface unit 802 also functions as a part that receives a user instruction to the simulation unit 806.
  • the display data creation unit 804 creates display data for displaying temporal changes in the execution result data created by the simulation unit 806.
  • the display data creation unit 804 sends the created display data to the user interface unit 802 to display the display data on the monitor 907 of the PC 6 in a graph, character mode, or 3D representation mode.
  • FIG. 4 is a first diagram showing the state of simulation in the embodiment of the present invention.
  • 3D space 500 which is a virtual space corresponding to real space, corresponds to a virtual conveyor 520 corresponding to a real space conveyor and a visual sensor in real space.
  • the virtual visual sensor 510 that performs the virtual work and the virtual work 540 corresponding to the work in the real space are arranged.
  • the simulation unit 806 shown in FIG. 3 executes a 3D simulator, a visual sensor simulator, and a machine control simulator.
  • the 3D simulator displays objects (in this embodiment, the virtual visual sensor 510, the virtual conveyor 520, and the virtual work 540) in the 3D space 500 based on the result acquired by the data trace.
  • the visual sensor simulator performs image processing on the virtual image data 570 of the object (here, the virtual work 540) acquired in the 3D space 500, and the determination result in the image processing is a virtual machine in the 3D space 500. This is reflected in the control of a certain virtual machine (in this embodiment, the virtual conveyor 520).
  • the machine control simulator controls a virtual machine in the 3D space 500. Specifically, the machine control simulator calculates a command value for controlling the virtual machine, and calculates a motion of the virtual machine with respect to the command value.
  • the 3D simulator, the visual sensor simulator, and the machine control simulator can be synchronized by matching the virtual image data 570 and the real image data 590.
  • the outline of the work (object) in the virtual image data 570 and the outline of the work (object) in the real image data 590 are extracted.
  • processing for reducing the color data of the actual image data 590 and converting it to a grayscale image processing for calculating whether approximate values of the converted grayscale image and the virtual image data 570 match, and determining whether or not they match.
  • the machine control simulator issues a shooting instruction
  • the visual sensor simulator makes an acquisition request for the virtual image data 570 in the 3D space 500 in response to the shooting instruction
  • the 3D simulator sends the virtual image data 570 at the predetermined shooting position in response to the acquisition request.
  • the visual sensor simulator Based on the received virtual image data 570, the visual sensor simulator recognizes the workpiece position using the matching result between the virtual image data 570 and the real image data 590, and transmits the recognized workpiece position.
  • the machine control simulator executes the virtual machine There is a synchronized approach by taking the cooperation, such as to control.
  • FIG. 5 is a flowchart showing the flow of simulation control in the first embodiment.
  • the simulation unit 806 virtually arranges a sample object for calibration at a predetermined calibration position in the 3D space 500 in step S ⁇ b> 101 by executing the 3D simulator.
  • the simulation unit 806 executes the visual sensor simulator, thereby performing a calibration by virtually photographing the sample object placed at a predetermined calibration position in the 3D space 500 by the 3D simulator in step S201.
  • the calibration it is confirmed whether or not the same captured image as the image of the predetermined sample object held in advance is obtained. If the same captured image cannot be obtained, the same captured image can be obtained. Adjust the range of images to be displayed.
  • the simulation unit 806 sets the initial position of the workpiece in step S311 by executing the machine control simulator.
  • FIG. 6 is a diagram showing a simulation 3D space 500 according to the first embodiment.
  • virtual workpieces 540A to 540D are placed on virtual conveyor 520, and the belt of virtual conveyor 520 is driven to move from left to right in the figure. It is moved and handled by the virtual robots 530A and 530B in the 3D space 500 corresponding to the robot in the real space.
  • the virtual workpieces 540A to 540D are photographed by the virtual visual sensor 510.
  • the initial positions of the virtual workpieces 540A to 540D are set on the virtual conveyor 520 on the left side of the virtual workpieces 540A to 540D drawn by solid lines in the drawing.
  • the simulation unit 806 starts the execution of the control program 15 in step S ⁇ b> 312 by executing the machine control simulator, whereby the virtual machine (here, the virtual conveyor 520, the virtual robot) 530A, 530B) is started.
  • the virtual machine here, the virtual conveyor 520, the virtual robot
  • step S313 the simulation unit 806 performs sequence control based on the position of the workpiece.
  • step S314 the simulation unit 806 executes motion control based on the position of the workpiece.
  • step S315 the simulation unit 806 calculates the state of the machine and the workpiece as a result of the motion control, and transmits the calculated state of the machine and the workpiece to the 3D simulator in step S316.
  • the simulation unit 806 receives the state of the machine and workpiece transmitted from the machine control simulator in step S112, and in step S113, monitors the machine and workpiece in the received state. In order to display in the 3D space 500, necessary execution result data is transferred to the display data creation unit 804.
  • virtual workpieces 540A to 540D are moved to the right by virtual conveyor 520, and virtual workpieces 540A to 540D are transferred by virtual robots 530A and 530B. Is lifted and placed elsewhere. This situation is displayed on the monitor 907 as shown in FIG.
  • the simulation unit 806 determines whether or not the current time is an imaging timing by executing a machine control simulator. In FIG. 6, it is determined whether or not the current time is the shooting timing by determining whether or not the current position of the encoder shaft of the virtual conveyor 520 has reached the specified position.
  • a virtual photoelectric tube sensor may be provided separately, and the time when the virtual work blocks the optical axis may be the photographing timing.
  • step S317 If it is determined that it is not the photographing timing (NO in step S317), the simulation unit 806 returns the process to be executed to the process in step S313.
  • the simulation unit 806 transmits a shooting instruction to the visual sensor simulator in step S318.
  • the simulation unit 806 determines whether or not the imaging instruction transmitted from the machine control simulator has been received in step S212 by executing the visual sensor simulator. If it is determined that the signal has not been received (NO in step S212), the simulation unit 806 repeats the process in step S212.
  • the simulation unit 806 acquires the virtual image data 570 in the 3D space 500 in step S213 by executing the visual sensor simulator.
  • the image acquisition request to be transmitted is transmitted to the 3D simulator.
  • the simulation unit 806 determines whether or not the image acquisition request transmitted from the visual sensor simulator has been received in step S114 by executing the 3D simulator. If it is determined that the data has not been received (NO in step S114), the simulation unit 806 returns the process to be executed to the process in step S112.
  • the simulation unit 806 transmits virtual image data 570 at a predetermined shooting position to the visual sensor simulator in step S115.
  • the predetermined shooting position is a position in the 3D space 500 corresponding to the position in the real space to which the visual sensor in the real space corresponding to the virtual visual sensor 510 is directed.
  • the simulation unit 806 returns the process to be executed to the process of step S112.
  • the simulation unit 806 receives the virtual image data 570 at the predetermined shooting position transmitted from the 3D simulator in step S214 by executing the visual sensor simulator.
  • the simulation unit 806 recognizes the position of the workpiece from the virtual image data 570 in step S215 by executing the visual sensor simulator, and transmits the recognized workpiece position to the machine control simulator in step S216.
  • the process to be executed is returned to the process of step S212.
  • the simulation unit 806 receives the position of the workpiece transmitted from the visual sensor simulator in step S319 by executing the machine control simulator, and returns the process to be executed to the process in step S313. Based on the received position of the workpiece, the above-described processing of step S313 and step S314 is executed.
  • the virtual robots 530A and 530B lift the virtual workpieces 540A to 540D, Place it in another location.
  • FIG. 7 is a diagram for explaining control based on the positions of the virtual workpieces 540A to 540D recognized by the virtual visual sensor 510 in the first embodiment.
  • virtual image data 570 that is taken by the virtual visual sensor 510 is created.
  • this virtual image data 570 a state in which the virtual workpieces 540A to 540D are arranged on the virtual conveyor 520 is photographed.
  • step S215 of the visual sensor simulator of FIG. 5 the virtual image data 570 is recognized, and the positions of the virtual works 540A to 540D are specified.
  • Steps S313 and S314 of the machine control simulator of FIG. 5 command values for the virtual robots 530A and 530B are calculated, and motion control is executed.
  • step S113 of the 3D simulator of FIG. 5 the situation in which the virtual workpieces 540A to 540D are handled by the virtual robots 530A and 530B is displayed in the 3D space 500 of the monitor 907.
  • FIG. 8 is a flowchart showing a flow of simulation control in the second embodiment.
  • simulation unit 806 executes the 3D simulator, thereby executing step S102.
  • Real image data 590 at a predetermined photographing position photographed by a visual sensor in the real space corresponding to the virtual visual sensor 510 is read.
  • step S103 the simulation unit 806 selects a predetermined shooting position from the read actual image data 590 (here, the position where the virtual visual sensor 510 is directed in the 3D space 500, the visual space in the real space).
  • the position of the workpiece at the position where the sensor is directed is specified.
  • FIG. 9 is a diagram illustrating a simulation 3D space 500 according to the second embodiment.
  • the position of the work is specified from real image data 590 corresponding to virtual image data 570 at a predetermined shooting position (in the figure, a portion surrounded by a broken parallelogram) of virtual visual sensor 510. .
  • the simulation unit 806 calculates the initial position of the workpiece from the position of the workpiece specified in step S103 in step S104.
  • the initial position of the workpiece may be a position specified from the actual image data 590 or may be a position before the position specified from the actual image data 590.
  • step S105 the simulation unit 806 transmits the initial position of the workpiece calculated in step S104 to the machine control simulator. Since the process after step S112 after step S105 is the same as the process of FIG. 5 of the first embodiment, the overlapping description will not be repeated.
  • the simulation unit 806 receives the initial position of the work transmitted from the 3D simulator in step S301 by executing the machine control simulator, and in step S311A, simulates the received initial position of the work. Set as the initial position of the workpiece to be processed. Since the process after step S311A after step S311A is the same as the process of FIG. 5 of the first embodiment, repeated description will not be repeated.
  • the situation in the real space can be reproduced.
  • the actual image data 590 read in step S102 is actual image data 590 at the time of occurrence of abnormality
  • the state at the time of occurrence of abnormality can be reproduced by simulation.
  • the situation where the lifting of the workpiece fails can be reproduced by simulation.
  • FIG. 10 is a diagram for explaining control based on the positions of the virtual workpieces 540A to 540D recognized by the virtual visual sensor 510 in the second embodiment.
  • a workpiece model such as the position and shape of the workpiece is identified and generated by extracting the contour of the workpiece from real image data 590. The Since the subsequent flow is the same as the flow in the first embodiment described with reference to FIG. 7, overlapping description will not be repeated.
  • FIG. 11 is a flowchart showing a flow of simulation control in the third embodiment.
  • simulation unit 806 executes the 3D simulator, thereby performing step S121.
  • Real image data 590 corresponding to the image data approximate to the virtual image data 570 at a predetermined shooting position in the 3D space 500 corresponding to the position where the visual sensor in the real space is directed is read from the HDD 904.
  • the HDD 904 stores virtual image data 570 in the 3D space 500 and real image data 590 corresponding to the real space in association with each other.
  • step S122 the simulation unit 806 receives the actual image data 590 necessary for displaying on the monitor 907 the actual image indicated by the actual image data 590 read in step S121. Passed. Since the loop processing from step S112 to step S115 including step S122 is executed with a very short cycle (for example, in units of several milliseconds to several tens of milliseconds), the actual image is displayed on the monitor 907 as a moving image. Since the process after step S114 after step S122 is the same as the process of FIG. 5 of the first embodiment, the overlapping description will not be repeated.
  • FIG. 12 is a diagram showing a simulation 3D space 500 in the third embodiment.
  • virtual image data 570A to 570C in 3D space 500 is stored in advance in correspondence with image data that approximates virtual image data 570C to 570C. Replaced by ⁇ 590C and displayed as a moving image of an actual image.
  • the PC 6 that is the simulation apparatus according to the above-described embodiment is a machine that handles objects (for example, virtual workpieces 540, 540A to 540D) (for example, virtual conveyor 520, virtual robot 530, 530A, 530B) is a device having a control unit (for example, CPU 901) for executing a simulation of a control program (for example, control program 10, control program 15) executed in a controller (for example, controller 14) for controlling the movement of 530A, 530B).
  • a control unit for example, CPU 901
  • a control program for example, control program 10, control program 15
  • controller for example, controller 14
  • the control unit includes a first calculation unit, a second calculation unit, a third calculation unit, and a virtual photographing unit.
  • the first calculation unit is handled by a virtual machine (for example, a virtual conveyor 520, virtual robots 530, 530A, and 530B in the 3D space 500) corresponding to the machine in the virtual space (for example, the 3D space 500) according to the control program.
  • a virtual machine for example, a virtual conveyor 520, virtual robots 530, 530A, and 530B in the 3D space 500
  • This is a part for calculating a command value for moving the virtual machine based on model data of a virtual object (for example, a work in 3D space) corresponding to the object (for example, steps S313 and S314 in FIG. 5 are executed).
  • This is a part formed in the CPU 901).
  • the second calculation unit is a part that calculates the movement of the virtual machine according to the command value calculated by the first calculation unit (for example, formed in the CPU 901 by executing step S315 in FIG. 5). Part).
  • the third calculation unit is a part that calculates the movement of the virtual object that is moved by the movement of the virtual machine calculated by the second calculation unit (for example, the CPU 901 is executed by executing step S315 in FIG. 5). Part to be formed).
  • the virtual photographing unit has a predetermined photographing position obtained when the movement of the virtual machine calculated by the second calculating unit or the movement of the virtual object calculated by the third calculating unit is virtually imaged. It is a part that generates an image (for example, a part that is formed in the CPU 901 by executing the virtual visual sensor 510 and step S115 in FIG. 5).
  • the first calculation unit further calculates a command value based on the virtual space image generated by the virtual photographing unit (for example, the position of the workpiece is recognized from the virtual image data 570 at a predetermined photographing position in step S215, and step S313 is performed.
  • step S314 the machine is controlled based on the position of the workpiece, and a command value for the machine is calculated).
  • a command value for moving the virtual machine is calculated based on the model data of the virtual object that is handled by the virtual machine corresponding to the machine in the virtual space and that corresponds to the object.
  • the movement of the virtual machine according to the command value is calculated, the movement of the virtual object moved by the calculated movement of the virtual machine is calculated, and the calculated movement of the virtual machine or the movement of the virtual object is calculated.
  • a virtual space image obtained when the image is virtually captured is generated, and a command value is calculated based on the generated virtual space image.
  • the virtual machine in the virtual space corresponding to the machine in the real space is controlled based on the virtual space image generated by the virtual photographing unit corresponding to the real space image photographed by the visual sensor in the real space. It is possible to realize an integrated simulation of a mechanical system including a real space visual sensor corresponding to the virtual photographing unit. It is also possible to test when the machine is controlled using a visual sensor.
  • the first calculation unit, the second calculation unit, the third calculation unit, and the virtual photographing unit are respectively set to a command value, a virtual machine movement, and a virtual image according to the same time axis.
  • the motion of the object is calculated and a virtual space image is generated (for example, the machine control simulator, 3D simulator, and visual sensor simulator in FIG. 5 execute the respective loop processes while exchanging data. , Synchronized at the timing of each exchange, and operates according to a common time axis). According to this, an integrated simulation with synchronism can be realized.
  • control unit further includes a specifying unit and a fourth calculation unit.
  • the specifying unit is a part that specifies the state of the object or the machine from the real space image captured by the real space visual sensor corresponding to the virtual image capturing unit (for example, by executing step S103 in FIG. Part to be formed).
  • the fourth calculation unit is a part that calculates the initial state of the object or the machine from the state specified by the specifying unit (for example, a part formed in the CPU 901 by executing step S104 in FIG. 8). .
  • the first calculation unit calculates a command value using the initial state calculated by the fourth calculation unit as the state at the start of the simulation (for example, the initial value is set in step S311A of FIG.
  • the machine is controlled in steps S313 and S314, and a command value for the machine is calculated).
  • the state in the real space can be reproduced.
  • the abnormality occurrence state can be reproduced.
  • the simulation apparatus further includes a storage unit (for example, RAM 903, HDD 904) and a display unit (for example, monitor 907).
  • the storage unit is an image storage unit (for example, 3D space 500) that stores in advance the real space image captured by the visual sensor in the real space corresponding to the virtual image capturing unit and the virtual space image corresponding to the real space image in association with each other.
  • the virtual image data 570 and the corresponding real space real image data 590 are stored in advance in association with each other).
  • the control unit further includes a display control unit.
  • the display control unit is a part that displays the real space image stored in the image storage unit corresponding to the virtual space image generated by the virtual photographing unit on the display unit (for example, step S121 and step S122 in FIG. 11). This is a part formed in the CPU 901 by executing the above.
  • the movement of the object or machine in the virtual space can be displayed like the object or machine in the real space.
  • the virtual visual sensor 510 in the 3D space 500 which is the virtual space, is simulated as a simulation of machine control using the real image data 590 captured by the visual sensor in the real space.
  • the virtual machine is controlled using the image data 570.
  • the virtual visual sensor 510 captures the virtual workpieces 540 and 540A to 540D, which are virtual objects, and the virtual conveyor 520 and the virtual machine as virtual machines based on the virtual image data 570 of the captured virtual objects.
  • the robots 530A and 530B are controlled.
  • the present invention is not limited to this, and a virtual machine such as the virtual conveyor 520 or the virtual robots 530A and 530B is photographed by the virtual visual sensor 510, and the virtual machine is controlled based on the virtual image data 570 of the photographed virtual machine. It may be.
  • both the virtual machine and the virtual object may be photographed by the virtual visual sensor 510, and the virtual machine may be controlled based on the photographed virtual machine and the virtual image data 570 of the virtual object.
  • the present invention is not limited to this, and any two of these three may be integrated, or three may be integrated. In this way, it is not necessary to exchange data between the respective simulators, so that the simulation can be executed efficiently.
  • the simulation using the virtual visual sensor 510 corresponding to the visual sensor that handles the real image data 590 is performed.
  • the present invention is not limited to this, and any sensor that can recognize the state of an object or a machine is not limited to a visual sensor, and may be another sensor such as an ultrasonic sensor or an optical sensor. It may be an infrared sensor, a temperature sensor, or a displacement sensor.
  • the simulation apparatus has been described.
  • the present invention is not limited to this, and can be understood as an invention of a simulation method performed by a simulation apparatus, or an invention of a simulation program executed by the simulation apparatus.
  • the virtual image data 570 in the 3D space 500 and the real image data 590 in the real space corresponding to the virtual image data 570 are stored in advance in association with each other.
  • real image data 590 corresponding to image data that approximates virtual image data 570 at a predetermined shooting position in the 3D space 500 corresponding to the position where the visual sensor in the real space is directed is read from the HDD 904. .
  • real image data 590 captured by a visual sensor in the real space is stored in the HDD 904 as it is, and actual image data that matches the virtual image data 570 captured by the virtual visual sensor 510 at the time of simulation execution. 590 may be searched from HDD 904 in real time.
  • the matching method the method described with reference to FIG. 4 of the first embodiment can be used.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Computer Hardware Design (AREA)
  • Robotics (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Mechanical Engineering (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Manipulator (AREA)
  • Processing Or Creating Images (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 制御プログラムにしたがって、仮想空間において機械に対応する仮想機械によって扱われ対象物に対応する仮想対象物のモデルデータに基づいて、仮想機械を動かせるための指令値が計算され(ステップS313,ステップS314)、計算された指令値にしたがった仮想機械の動きが計算され(ステップS315)、計算された仮想機械の動きによって動かされる仮想対象物の動きが計算され(ステップS315)、計算された仮想機械の動きまたは仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像が生成され(ステップS115)、生成された仮想空間画像にさらに基づいて、指令値が計算される(ステップS313,ステップS314)。仮想撮影部に対応する実空間の視覚センサを含めた機械システムの統合シミュレーションを実現できる。視覚センサを用いて機械を制御する場合のテストを可能化できる。

Description

シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
 この発明は、シミュレーション装置、シミュレーション方法、および、シミュレーションプログラムに関し、特に、対象物を扱う機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを実行するのに適したシミュレーション装置、シミュレーション方法、および、シミュレーションプログラムに関する。
 従来、検査対象物をカメラで撮影した画像から計測結果を抽出する画像処理装置で用いられる制御プログラムを作成するプログラム作成装置があった(たとえば、特願2009-123069号公報(以下「特許文献1」という))。このプログラム作成装置では、実際のカメラで撮影した画像を登録画像として予め保持しておき、この登録画像から計測結果を抽出することで、オフラインでシミュレーションをすることができる。
特開2009-123069号公報
 しかし、特許文献1のオフラインでのシミュレーションにおいては、カメラなどの視覚センサの計測結果および機械の制御が同じ時間軸で同期的に動作するシミュレーションができなかった。
 この発明は、上述の問題を解決するためになされたものであり、その目的の1つは、視覚センサを含めた統合的なシミュレーションを実現することが可能なシミュレーション装置、シミュレーション方法、および、シミュレーションプログラムを提供することである。
 上述の目的を達成するために、この発明のある局面によれば、シミュレーション装置は、対象物を扱う機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを実行する制御部を有する装置である。
 制御部は、制御プログラムにしたがって、仮想空間において機械に対応する仮想機械によって扱われ対象物に対応する仮想対象物のモデルデータに基づいて、仮想機械を動かせるための指令値を計算する第1の計算部と、第1の計算部によって計算された指令値にしたがった仮想機械の動きを計算する第2の計算部と、第2の計算部によって計算された仮想機械の動きによって動かされる仮想対象物の動きを計算する第3の計算部と、第2の計算部によって計算された仮想機械の動き、または、第3の計算部によって計算された仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像を生成する仮想撮影部とを含む。第1の計算部は、仮想撮影部によって生成された仮想空間画像にさらに基づいて、指令値を計算する。
 好ましくは、第1の計算部、第2の計算部、第3の計算部、および、仮想撮影部は、同一の時間軸にしたがって、それぞれ、指令値、仮想機械の動き、および、仮想対象物の動きを計算し、仮想空間画像を生成する。
 好ましくは、制御部は、さらに、仮想撮影部に対応する実空間の視覚センサによって撮影された実空間画像から対象物または機械の状態を特定する特定部と、特定部によって特定された状態から対象物または機械の初期状態を計算する第4の計算部とを含む。第1の計算部は、第4の計算部によって計算された初期状態をシミュレーションの開始時の状態として指令値を計算する。
 好ましくは、シミュレーション装置は、記憶部と、表示部とをさらに備える。記憶部は、仮想撮影部に対応する実空間の視覚センサによって撮影された実空間画像と当該実空間画像に対応する仮想空間画像とを対応付けて予め記憶する画像記憶部を含む。制御部は、さらに、仮想撮影部によって生成された仮想空間画像に対応して画像記憶部に記憶されている実空間画像を表示部に表示させる表示制御部を含む。
 この発明の他の局面によれば、シミュレーション方法は、対象物を扱う機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを実行する制御部を有するシミュレーション装置で行なわれる方法である。
 シミュレーション方法は、制御部が、制御プログラムにしたがって、仮想空間において機械に対応する仮想機械によって扱われ対象物に対応する仮想対象物のモデルデータに基づいて、仮想機械を動かせるための指令値を計算する第1のステップと、第1のステップで計算された指令値にしたがった仮想機械の動きを計算する第2のステップと、第2のステップで計算された仮想機械の動きによって動かされる仮想対象物の動きを計算する第3のステップと、第2のステップで計算された仮想機械の動き、または、第3のステップで計算された仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像を生成する仮想撮影ステップとを含む。第1のステップは、仮想撮影ステップで生成された仮想空間画像に基づいて、指令値を計算するステップを含む。
 この発明のさらに他の局面によれば、シミュレーションプログラムは、対象物を扱う機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを実行する制御部を有するシミュレーション装置で実行されるプログラムである。
 シミュレーションプログラムは、制御プログラムにしたがって、仮想空間において機械に対応する仮想機械によって扱われ対象物に対応する仮想対象物のモデルデータに基づいて、仮想機械を動かせるための指令値を計算する第1のステップと、第1のステップで計算された指令値にしたがった仮想機械の動きを計算する第2のステップと、第2のステップで計算された仮想機械の動きによって動かされる仮想対象物の動きを計算する第3のステップと、第2のステップで計算された仮想機械の動き、または、第3のステップで計算された仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像を生成する仮想撮影ステップとを制御部に実行させる。第1のステップは、仮想撮影ステップで生成された仮想空間画像に基づいて、指令値を計算するステップを含む。
 この発明に従えば、視覚センサを含めた統合シミュレーションを実現できる。また、視覚センサを用いて機械を制御する場合のテストをすることができる。
この発明の実施の形態に従う制御システムの構成を説明する図である。 この発明の実施の形態に従うPCのハードウェア構成を説明する図である。 CPUがシミュレーションプログラムを実行することにより実現される機能ブロックを説明する図である。 この発明の実施の形態におけるシミュレーションの状況を示す第1の図である。 第1の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。 第1の実施の形態におけるシミュレーションの3D空間を示す図である。 第1の実施の形態における仮想視覚センサにより認識された仮想ワークの位置に基づく制御を説明するための図である。 第2の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。 第2の実施の形態におけるシミュレーションの3D空間を示す図である。 第2の実施の形態における仮想視覚センサにより認識された仮想ワークの位置に基づく制御を説明するための図である。 第3の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。 第3の実施の形態におけるシミュレーションの3D空間を示す図である。
 以下、この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
 [第1の実施の形態]
 図1は、この発明の実施の形態に従う制御システムの構成を説明する図である。図1を参照して、この発明の実施の形態に従う制御システムは、サーバ2と、ネットワーク4と、PC(Personal Computer)6と、コントローラ14と、制御対象装置16とから構成されている。
 サーバ2は、ネットワーク4を介してPC6と接続されている。PC6は、制御対象装置16を制御するコントローラ14と通信可能に接続されている。
 PC6は、この発明の一実施形態におけるシミュレーション装置に相当する。PC6には、シミュレーションプログラムを含むコントローラサポートプログラム8がインストールされており、また、ユーザが作成した制御プログラム10が記憶されている。CD-ROM(Compact Disc-Read Only Memory)12は、コントローラサポートプログラム8を格納している。PC6にインストールされているコントローラサポートプログラム8は、このCD-ROM12からインストールされたものである。
 コントローラ14は、制御対象装置16の動きを制御する。この発明の実施の形態においては、コントローラ14として一例として、PLC(Programmable Logic Controller)が用いられる。すなわち、このPLCには、いわゆるモーションコントロール機能が備えられている。コントローラ14は、制御対象装置16に対する制御内容を規定する制御プログラム15を記憶している。コントローラ14は、制御周期ごとに制御プログラム15を一巡実行する。ここで、コントローラ14に記憶されている制御プログラム15は、PC6に記憶されている制御プログラム10をコピーしたコピーデータであり、PC6から送信されたものである。
 制御対象装置16は、サーボモータ、ステッピングモータなどのモータ18およびモータを駆動するモータドライバ17を含む。
 モータ18はモータドライバ17から駆動電流を供給される。モータドライバ17は、制御プログラム15を実行するコントローラ14から制御周期ごとに位置の指令値を与えられ、それに応じた駆動電流をモータ18に供給する。モータ18がサーボモータである場合、モータ18にはエンコーダが備えられており、モータ18の回転位置の実測値がエンコーダによって検出される。モータの回転位置の実測値は、モータドライバ17がフィードバック制御に利用する。
 なお、上記においては、CD-ROM12を介して、PC6にシミュレーションプログラムをインストールする場合について説明したが、特にこれに限られず、サーバ2からネットワーク4を介してシミュレーションプログラムをPC6にダウンロードするようにしても良い。制御プログラムについても同様である。
 図2は、この発明の実施の形態に従うPC6のハードウェア構成を説明する図である。図2を参照して、この発明の実施の形態に従うPC6は、処理部であるCPU901と、記憶部であるROM902、RAM903、およびHDD904と、データ読取部であるCD-ROM駆動装置908と、通信部である通信IF909と、表示部であるモニタ907と、入力部であるキーボード905およびマウス906とを含む。なお、これらの部位は、内部バス910を介して互いに接続される。
 HDD904は、典型的には不揮発性の磁気メモリであり、CD-ROM駆動装置908によりCD-ROM12から読取られたシミュレーションプログラムを格納する。また、制御プログラム15も格納している。
 CPU901は、HDD904に格納されている、本実施の形態に従うコントローラサポートプログラム8をRAM903などに展開して実行する。
 RAM903は、揮発性メモリであり、ワークメモリとして使用される。ROM902は、一般的に、オペレーティングシステム(OS:Operating System)等のプログラムを格納している。
 通信IF909は、典型的にはイーサネット(登録商標)およびUSB(Universal Serial Bus)といった汎用的な通信プロトコルをサポートし、ネットワーク4を介してサーバ2との間でデータ通信を提供するとともに、コントローラ14との間でデータ通信を提供する。
 モニタ907は、液晶表示装置、CRT(Cathode Ray Tube)、プラズマディスプレイ装置などで構成され、PC6による処理結果などを表示する。キーボード905は、ユーザによるキー入力を受付け、マウス906は、ユーザによるポインティング操作を受付ける。
 図3は、CPU901がコントローラサポートプログラム8を実行することにより実現される機能ブロックを説明する図である。図3を参照して、ここでは、ユーザインタフェース部802と、表示データ作成部804と、シミュレーション部806と、制御プログラム記憶部808と、制御プログラム編集部810と、コントローラインタフェース部812とが示されている。
 ユーザインタフェース部802は、PC6のモニタ907に表示するウインドウ画面の内容を作成し、また、キーボード905やマウス906によるユーザの操作を受け付ける部位である。
 制御プログラム編集部810は、ユーザに制御プログラムの入力および編集を行わせる。制御プログラムを実行するためにコンパイルが必要である場合はコンパイルも行う。作成された制御プログラムは、コントローラインタフェース部812を介してコントローラ14に送られる。また、作成された制御プログラムは、HDD904の所定領域である制御プログラム記憶部808に格納される。また、制御プログラム編集部810は、コントローラインタフェース部812を介してコントローラ14に記憶されている制御プログラム15を読み出して編集することもできる。
 シミュレーション部806は、コントローラ14のシミュレータである。シミュレーション部806は、制御プログラム記憶部808に記憶された制御プログラム10に従ってコントローラ14が制御プログラム15を実行する動作をシミュレートし、コントローラ14が制御周期ごとに出力するはずの位置の指令値を算出する。
 また、シミュレーション部806は、外部からの信号が到来して制御プログラムの動作に影響を与える状態をシミュレートしたり、制御プログラム15の実行自体によってコントローラ14のメモリの記憶内容などのコントローラ14の内部状態が変化して、その変化が制御プログラム15の動作に影響を与える状態をシミュレートしたりすることができる。
 また、シミュレーション部806は、ユーザインタフェース部802を介してシミュレーション実行に関するユーザの指示を受け付ける。すなわち、ユーザインタフェース部802は、シミュレーション部806に対するユーザの指示を受け付ける部分としても働く。
 表示データ作成部804は、シミュレーション部806によって作成された実行結果データの時間的な変化を表示するための表示データを作成する。表示データ作成部804は、作成した表示データをユーザインタフェース部802に送ることによりPC6のモニタ907に表示データをグラフや文字の態様や3D表現の態様で表示する。
 図4は、この発明の実施の形態におけるシミュレーションの状況を示す第1の図である。図4を参照して、この実施の形態においては、実空間に対応する仮想的な空間である3D空間500には、実空間のコンベアに対応する仮想コンベア520と、実空間の視覚センサに対応する仮想視覚センサ510と、実空間のワークに対応する仮想ワーク540とが配置される。
 図3で示したシミュレーション部806は、3Dシミュレータと、視覚センサシミュレータと、機械制御シミュレータとを実行する。
 3Dシミュレータは、データトレースで取得した結果に基づいて3D空間500にオブジェクト(この実施の形態においては、仮想視覚センサ510、仮想コンベア520、および、仮想ワーク540)を表示する。
 視覚センサシミュレータは、3D空間500において取得されたオブジェクト(ここでは、仮想ワーク540)の仮想画像データ570に対して画像処理を行ない、画像処理での判定結果を3D空間500における仮想的な機械である仮想機械(この実施の形態においては、仮想コンベア520)の制御に反映させる。
 機械制御シミュレータは、3D空間500における仮想機械を制御する。具体的には、機械制御シミュレータは、仮想機械への制御の指令値を計算して、その指令値に対する仮想機械の動きを計算する。
 この仮想画像データ570と実画像データ590とをマッチングさせることで、3Dシミュレータ、視覚センサシミュレータおよび機械制御シミュレータの同期を取ることができる。
 具体的には、仮想画像データ570と実画像データ590とのマッチングの手法としては、仮想画像データ570内のワーク(オブジェクト)の輪郭および実画像データ590内のワーク(オブジェクト)の輪郭を抽出する画像処理と、抽出した2組の輪郭をマッチングして一致しているかどうかを判別する処理とを組合せた手法がある。また、実画像データ590の色データを削減してグレースケール画像に変換する処理と、変換したグレースケール画像と仮想画像データ570との近似値を計算して一致しているかどうかを判別する処理とを組合せた手法がある。
 また、仮想画像データ570と実画像データ590とのマッチングの結果を用いた3Dシミュレータ、視覚センサシミュレータおよび機械制御シミュレータの同期を取る手法としては、(1)機械制御シミュレータが、撮影指示を行ない、(2)撮影指示に応じて、視覚センサシミュレータが、3D空間500の仮想画像データ570の取得要求を行ない、(3)取得要求に応じて、3Dシミュレータが、所定撮影位置の仮想画像データ570を送信し、(4)受信した仮想画像データ570に基づいて、視覚センサシミュレータが、仮想画像データ570と実画像データ590とのマッチングの結果を用いてワーク位置を認識し、認識したワーク位置を送信し、(5)受信したワーク位置に基づいて、機械制御シミュレータが、仮想機械を制御するといった連携を取ることによって同期を取る手法がある。
 図5は、第1の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。図5を参照して、シミュレーション部806は、3Dシミュレータを実行することによって、ステップS101で、キャリブレーション用のサンプルオブジェクトを3D空間500の所定キャリブレーション位置に仮想的に配置する。
 シミュレーション部806は、視覚センサシミュレータを実行することによって、ステップS201で、3Dシミュレータによって3D空間500の所定キャリブレーション位置に配置されたサンプルオブジェクトを仮想的に撮影してキャリブレーションを実行する。キャリブレーションにおいては、予め保持されている所定のサンプルオブジェクトの画像と同じ撮影画像が得られるか否かが確認され、同じ撮影画像が得られない場合は、同じ撮影画像が得られるように、得られる画像の範囲などを調整する。
 その後、シミュレーション部806は、機械制御シミュレータを実行することによって、ステップS311で、ワークの初期位置を設定する。
 図6は、第1の実施の形態におけるシミュレーションの3D空間500を示す図である。図6を参照して、この実施の形態においては、仮想ワーク540A~540Dは、仮想コンベア520の上に置かれて、仮想コンベア520のベルトが駆動されることによって、図の左から右方向に移動し、実空間のロボットに対応する3D空間500における仮想ロボット530A,530Bによってハンドリングされる。また、仮想ワーク540A~540Dは、仮想視覚センサ510によって撮影される。
 仮想ワーク540A~540Dの初期位置は、図において実線で描かれている仮想ワーク540A~540Dの左側の仮想コンベア520の上に設定される。
 図5に戻って、次に、シミュレーション部806は、機械制御シミュレータを実行することによって、ステップS312で、制御プログラム15の実行を開始することによって、仮想機械(ここでは、仮想コンベア520、仮想ロボット530A,530B)の制御を開始する。
 ステップS313では、シミュレーション部806は、ワークの位置に基づいて、シーケンス制御を実行する。ステップS314では、シミュレーション部806は、ワークの位置に基づいて、モーション制御を実行する。
 そして、シミュレーション部806は、ステップS315で、モーション制御の結果としての機械およびワークの状態を計算し、ステップS316で、計算した機械およびワークの状態を、3Dシミュレータに送信する。
 次いで、シミュレーション部806は、3Dシミュレータを実行することによって、ステップS112で、機械制御シミュレータから送信された機械およびワークの状態を受信し、ステップS113で、受信した状態の機械およびワークを、モニタ907の3D空間500に表示させるために、必要な実行結果データが表示データ作成部804に受け渡される。
 図6を再び参照して、シーケンス制御およびモーション制御が行なわれることで、仮想ワーク540A~540Dが、仮想コンベア520によって、右方向に運ばれるとともに、仮想ロボット530A,530Bによって、仮想ワーク540A~540Dが持ち上げられて、別の場所に配置される。この状況が、図6で示されるように、モニタ907に表示される。
 図5に戻って、次に、シミュレーション部806は、機械制御シミュレータを実行することによって、現時点が撮影タイミングであるか否かを判断する。図6においては、仮想コンベア520のエンコーダ軸の現在位置が指定位置に到達したか否かが判断されることによって、現時点が撮影タイミングであるか否かが判断される。あるいは、仮想的な光電管センサを別途設けて、仮想ワークが光軸を遮ったときが、撮影タイミングであることとしてもよい。
 撮影タイミングでないと判断した場合(ステップS317でNOと判断した場合)、シミュレーション部806は、実行する処理をステップS313の処理に戻す。
 一方、撮影タイミングであると判断した場合(ステップS317でYESと判断した場合)、シミュレーション部806は、ステップS318で、撮影指示を視覚センサシミュレータに送信する。
 シミュレーション部806は、視覚センサシミュレータを実行することによって、ステップS212で、機械制御シミュレータから送信されてきた撮影指示を受信したか否かを判断する。受信していないと判断した場合(ステップS212でNOと判断した場合)、シミュレーション部806は、ステップS212の処理を繰返す。
 一方、撮影指示を受信したと判断した場合(ステップS212でYESと判断した場合)、シミュレーション部806は、視覚センサシミュレータを実行することによって、ステップS213で、3D空間500の仮想画像データ570を取得する画像取得要求を、3Dシミュレータに送信する。
 シミュレーション部806は、3Dシミュレータを実行することによって、ステップS114で、視覚センサシミュレータから送信されてきた画像取得要求を受信したか否かを判断する。受信していないと判断した場合(ステップS114でNOと判断した場合)、シミュレーション部806は、実行する処理をステップS112の処理に戻す。
 一方、画像取得要求を受信したと判断した場合(ステップS114でYESと判断した場合)、シミュレーション部806は、ステップS115で、所定撮影位置の仮想画像データ570を視覚センサシミュレータに送信する。所定撮影位置とは、仮想視覚センサ510に対応する実空間の視覚センサが向けられている実空間の位置に対応する3D空間500の位置である。ステップS115の後、シミュレーション部806は、実行する処理をステップS112の処理に戻す。
 シミュレーション部806は、視覚センサシミュレータを実行することによって、ステップS214で、3Dシミュレータから送信されてきた所定撮影位置の仮想画像データ570を受信する。
 次に、シミュレーション部806は、視覚センサシミュレータを実行することによって、ステップS215で、仮想画像データ570からワークの位置を認識し、ステップS216で、認識したワークの位置を機械制御シミュレータに送信し、実行する処理をステップS212の処理に戻す。
 シミュレーション部806は、機械制御シミュレータを実行することによって、ステップS319で、視覚センサシミュレータから送信されてきたワークの位置を受信し、実行する処理をステップS313の処理に戻す。この受信されたワークの位置に基づいて、前述したステップS313およびステップS314の処理が実行される。
 図6を再び参照して、たとえば、仮想視覚センサ510の仮想画像データ570から認識された仮想ワーク540A~540Dの位置に基づいて、仮想ロボット530A,530Bは、仮想ワーク540A~540Dを持ち上げて、別の場所に配置する。
 図7は、第1の実施の形態における仮想視覚センサ510により認識された仮想ワーク540A~540Dの位置に基づく制御を説明するための図である。図7を参照して、図5の3DシミュレータのステップS115が実行されることで、仮想視覚センサ510で撮影されたこととされる仮想画像データ570が作成される。この仮想画像データ570には、仮想コンベア520の上に仮想ワーク540A~540Dが配置されている状態が撮影されている。
 そして、図5の視覚センサシミュレータのステップS215が実行されることで、仮想画像データ570が認識され、仮想ワーク540A~540Dの位置が特定される。
 次に、図5の機械制御シミュレータのステップS313,ステップS314が実行されることで、仮想ロボット530A,530Bへの指令値が計算され、モーション制御が実行される。
 次いで、図5の3DシミュレータのステップS113が実行されることで、仮想ロボット530A,530Bによって仮想ワーク540A~540Dがハンドリングされている状況が、モニタ907の3D空間500に表示される。
 [第2の実施の形態]
 図8は、第2の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。図8を参照して、第2の実施の形態においては、第1の実施の形態の図5で説明したステップS101の後に、シミュレーション部806は、3Dシミュレータを実行することによって、ステップS102で、仮想視覚センサ510に対応する実空間の視覚センサで撮影された所定撮影位置での実画像データ590を読込む。
 次に、シミュレーション部806は、ステップS103で、読込んだ実画像データ590から所定撮影位置(ここでは、3D空間500においては、仮想視覚センサ510が向けられている位置、実空間においては、視覚センサが向けられている位置)でのワークの位置を特定する。
 図9は、第2の実施の形態におけるシミュレーションの3D空間500を示す図である。図9を参照して、仮想視覚センサ510の所定撮影位置(図では破線の平行四辺形で囲まれている部分)の仮想画像データ570に対応する実画像データ590からワークの位置が特定される。
 図8に戻って、シミュレーション部806は、ステップS104で、ステップS103で特定されたワークの位置から、ワークの初期位置を算出する。ワークの初期位置は、実画像データ590から特定された位置であってもよいし、実画像データ590から特定された位置よりも前の位置であってもよい。
 次いで、シミュレーション部806は、ステップS105で、ステップS104で算出されたワークの初期位置を、機械制御シミュレータに送信する。ステップS105の後のステップS112以降の処理については、第1の実施の形態の図5の処理と同様であるので重複する説明は繰返さない。
 次に、シミュレーション部806は、機械制御シミュレータを実行することによって、ステップS301で、3Dシミュレータから送信されてきたワークの初期位置を受信し、ステップS311Aで、受信したワークの初期位置を、シミュレーションをするワークの初期位置として設定する。ステップS311Aの後のステップS312以降の処理については、第1の実施の形態の図5の処理と同様であるので重複する説明は繰返さない。
 これにより、実画像データ590に基づく位置からのシミュレーションを実行することで、実空間での状況を再現することができる。また、ステップS102で読込まれる実画像データ590が、異常発生時の実画像データ590であれば、シミュレーションで、異常発生時の状態を再現することができる。たとえば、ワークを持上げるのに失敗した場合の実画像データ590を読込ませた場合は、シミュレーションで、ワークの持上げを失敗する状況を再現することができる。
 図10は、第2の実施の形態における仮想視覚センサ510により認識された仮想ワーク540A~540Dの位置に基づく制御を説明するための図である。図10を参照して、図8の3DシミュレータのステップS103,ステップS104が実行されることで、実画像データ590のワークの輪郭抽出により、ワークの位置や形状などのワークモデルが特定され生成される。その後の流れは、図7で説明した第1の実施の形態における流れと同様であるので、重複する説明は繰返さない。
 [第3の実施の形態]
 図11は、第3の実施の形態におけるシミュレーションの制御の流れを示すフローチャートである。図11を参照して、第3の実施の形態においては、第1の実施の形態の図5で説明したステップS113の後に、シミュレーション部806は、3Dシミュレータを実行することによって、ステップS121で、実空間の視覚センサが向けられている位置に対応する3D空間500の所定撮影位置の仮想画像データ570に近似する画像データに対応する実画像データ590をHDD904から読出す。なお、HDD904には、3D空間500の仮想画像データ570とそれに対応する実空間の実画像データ590とが対応付けられて予め記憶されている。
 次に、シミュレーション部806は、ステップS122で、ステップS121で読出した実画像データ590で示される実画像を、モニタ907に表示させるために、必要な実画像データ590が表示データ作成部804に受け渡される。このステップS122を含むステップS112からステップS115のループ処理は、ごく短い周期(たとえば、数ミリ秒から数十ミリ秒単位)で実行されるため、実画像は、動画としてモニタ907に表示される。ステップS122の後のステップS114以降の処理については、第1の実施の形態の図5の処理と同様であるので重複する説明は繰返さない。
 図12は、第3の実施の形態におけるシミュレーションの3D空間500を示す図である。図12を参照して、図で示すように、3D空間500の仮想画像データ570A~570Cが、その仮想画像データ570C~570Cに近似する画像データと対応して予め記憶されている実画像データ590A~590Cに置換えられて、実画像の動画として表示される。
 [まとめ]
 (1) 以上説明したように、上述した実施の形態に係るシミュレーション装置であるPC6は、対象物(たとえば、仮想ワーク540,540A~540D)を扱う機械(たとえば、仮想コンベア520、仮想ロボット530,530A,530B)の動きを制御するコントローラ(たとえば、コントローラ14)において実行される制御プログラム(たとえば、制御プログラム10,制御プログラム15)のシミュレーションを実行する制御部(たとえば、CPU901)を有する装置である。
 制御部は、第1の計算部と、第2の計算部と、第3の計算部と、仮想撮影部とを含む。第1の計算部は、制御プログラムにしたがって、仮想空間(たとえば、3D空間500)において機械に対応する仮想機械(たとえば、3D空間500における仮想コンベア520、仮想ロボット530,530A,530B)によって扱われ対象物に対応する仮想対象物(たとえば、3D空間におけるワーク)のモデルデータに基づいて、仮想機械を動かせるための指令値を計算する部分である(たとえば、図5のステップS313,ステップS314が実行されることでCPU901に形成される部分である)。
 第2の計算部は、第1の計算部によって計算された指令値にしたがった仮想機械の動きを計算する部分である(たとえば、図5のステップS315が実行されることでCPU901に形成される部分である)。
 第3の計算部は、第2の計算部によって計算された仮想機械の動きによって動かされる仮想対象物の動きを計算する部分である(たとえば、図5のステップS315が実行されることでCPU901に形成される部分である)。
 仮想撮影部は、第2の計算部によって計算された仮想機械の動き、または、第3の計算部によって計算された仮想対象物の動きを、仮想的に撮影した場合に得られる所定撮影位置の画像を生成する部分である(たとえば、仮想視覚センサ510および図5のステップS115が実行されることでCPU901に形成される部分である)。
 第1の計算部は、仮想撮影部によって生成された仮想空間画像にさらに基づいて指令値を計算する(たとえば、ステップS215で所定撮影位置の仮想画像データ570からワークの位置が認識され、ステップS313,ステップS314で、ワークの位置に基づいて機械の制御が行なわれ、機械への指令値が計算される)。
 このように、制御プログラムにしたがって、仮想空間において機械に対応する仮想機械によって扱われ対象物に対応する仮想対象物のモデルデータに基づいて、仮想機械を動かせるための指令値が計算され、計算された指令値にしたがった仮想機械の動きが計算され、計算された仮想機械の動きによって動かされる仮想対象物の動きが計算され、計算された仮想機械の動き、または、仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像が生成され、生成された仮想空間画像にさらに基づいて、指令値が計算される。
 これによれば、実空間の機械に対応する仮想空間における仮想機械が、実空間の視覚センサによって撮影される実空間画像に対応する仮想撮影部によって生成された仮想空間画像に基づいて制御される。仮想撮影部に対応する実空間の視覚センサを含めた機械システムの統合シミュレーションを実現できる。また、視覚センサを用いて機械を制御する場合のテストをすることができる。
 (2) また、第1の計算部、第2の計算部、第3の計算部、および、仮想撮影部は、同一の時間軸にしたがって、それぞれ、指令値、仮想機械の動き、および、仮想対象物の動きを計算し、仮想空間画像を生成する(たとえば、図5の機械制御シミュレータ、3Dシミュレータ、および、視覚センサシミュレータは、それぞれ、データをやり取りしながら、それぞれのループ処理を実行するので、それぞれのやり取りのタイミングで同期が取られ、共通の時間軸にしたがって動作する)。これによれば、同期性を持った統合シミュレーションを実現できる。
 (3) また、制御部は、さらに、特定部と、第4の計算部とを含む。特定部は、仮想撮影部に対応する実空間の視覚センサによって撮影された実空間画像から対象物または機械の状態を特定する部分である(たとえば、図8のステップS103を実行することでCPU901に形成される部分である)。
 第4の計算部は、特定部によって特定された状態から対象物または機械の初期状態を計算する部分である(たとえば、図8のステップS104を実行することでCPU901に形成される部分である)。
 第1の計算部は、第4の計算部によって計算された初期状態をシミュレーションの開始時の状態として指令値を計算する(たとえば、図8のステップS311Aで初期値が設定されて、図5のステップS313,ステップS314で機械の制御が行なわれ、機械への指令値が計算される)。
 これによれば、実空間での状態を再現することができる。実空間で異常が発生した場合には異常発生状態の再現をすることができる。
 (4) また、シミュレーション装置は、記憶部(たとえば、RAM903、HDD904)と、表示部(たとえば、モニタ907)とをさらに備える。記憶部は、仮想撮影部に対応する実空間の視覚センサによって撮影された実空間画像と当該実空間画像に対応する仮想空間画像とを対応付けて予め記憶する画像記憶部(たとえば、3D空間500の仮想画像データ570とそれに対応する実空間の実画像データ590とが対応付けられて予め記憶される記憶領域)を含む。
 制御部は、さらに、表示制御部を含む。表示制御部は、仮想撮影部によって生成された仮想空間画像に対応して画像記憶部に記憶されている実空間画像を表示部に表示させる部分である(たとえば、図11のステップS121,ステップS122を実行することでCPU901に形成される部分である)。
 これによれば、仮想空間での対象物または機械の動きを実空間での対象物または機械のように表示することができる。
 [変形例]
 (1) 前述した実施の形態においては、実空間での視覚センサで撮影された実画像データ590を用いた機械の制御のシミュレーションとして、仮想空間である3D空間500での仮想視覚センサ510の仮想画像データ570を用いた仮想機械の制御を行なうようにした。この場合に、仮想視覚センサ510で、仮想対象物である仮想ワーク540,540A~540Dを撮影することとし、撮影した仮想対象物の仮想画像データ570に基づいて仮想機械としての仮想コンベア520および仮想ロボット530A,530Bを制御するようにした。
 しかし、これに限定されず、仮想視覚センサ510で仮想コンベア520または仮想ロボット530A,530Bなどの仮想機械を撮影することとし、撮影した仮想機械の仮想画像データ570に基づいて仮想機械を制御するようにしてもよい。
 また、仮想視覚センサ510で仮想機械および仮想対象物の両方を撮影することとし、撮影した仮想機械および仮想対象物の仮想画像データ570に基づいて仮想機械を制御するようにしてもよい。
 (2) 前述した実施の形態においては、シミュレーション部806が実行するシミュレータが、3Dシミュレータ、視覚センサシミュレータ、および、機械制御シミュレータの3つに分かれている場合について説明した。
 しかし、これに限定されず、これらの3つのうちのいずれか2つが統合されていてもよいし、3つが統合されていてもよい。このようにすれば、それぞれのシミュレータ間でのデータのやり取りを行なわずに済むので、効率よくシミュレーションを実行することができる。
 (3) 前述した実施の形態においては、実画像データ590を扱う視覚センサに対応する仮想視覚センサ510を用いたシミュレーションを行なうことを説明した。しかし、これに限定されず、対象物または機械の状態を認識可能なセンサであれば、視覚センサに限定されず、他のセンサ、たとえば、超音波センサであってもよいし、光センサであってもよいし、赤外線センサであってもよいし、温度センサであってもよいし、変位センサであってもよい。
 (4) 前述した実施の形態においては、シミュレーション装置の発明として説明した。しかし、これに限定されず、シミュレーション装置で行なわれるシミュレーション方法の発明として捉えることができるし、シミュレーション装置で実行されるシミュレーションプログラムの発明として捉えることができる。
 (5) 前述した第3の実施の形態においては、3D空間500の仮想画像データ570とそれに対応する実空間の実画像データ590とが対応付けられて予め記憶されていることとし、図11のステップS121で、実空間の視覚センサが向けられている位置に対応する3D空間500の所定撮影位置の仮想画像データ570に近似する画像データに対応する実画像データ590をHDD904から読出すようにした。
 しかし、これに限定されず、実空間の視覚センサで撮影した実画像データ590をそのままHDD904に保存しておき、シミュレーション実行時に仮想視覚センサ510で撮影された仮想画像データ570とマッチングする実画像データ590をHDD904からリアルタイムで検索するようにしてもよい。マッチングの手法としては、第1の実施の形態の図4で説明した手法を用いることができる。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 2 サーバ、4 ネットワーク、8 コントローラサポートプログラム、10,15 制御プログラム、12 CD-ROM、14 コントローラ、16 制御対象装置、17 モータドライバ、18 モータ、500 3D空間、510 仮想視覚センサ、520 仮想コンベア、530,530A,530B 仮想ロボット、540,540A~540D 仮想ワーク、570,570A~570C 仮想画像データ、590,590A~590C 実画像データ、802 ユーザインタフェース部、804 表示データ作成部、806 シミュレーション部、808 制御プログラム記憶部、810 制御プログラム編集部、812 コントローラインタフェース部、901 CPU、902 ROM、903 RAM、904 HDD、905 キーボード、906 マウス、907 モニタ、908 CD-ROM駆動装置、909 通信IF、910 内部バス。

Claims (6)

  1.  対象物を扱う機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを実行する制御部を有するシミュレーション装置であって、
     前記制御部は、
      前記制御プログラムにしたがって、仮想空間において前記機械に対応する仮想機械によって扱われ前記対象物に対応する仮想対象物のモデルデータに基づいて、前記仮想機械を動かせるための指令値を計算する第1の計算手段と、
      前記第1の計算手段によって計算された前記指令値にしたがった前記仮想機械の動きを計算する第2の計算手段と、
      前記第2の計算手段によって計算された前記仮想機械の動きによって動かされる前記仮想対象物の動きを計算する第3の計算手段と、
      前記第2の計算手段によって計算された前記仮想機械の動き、または、前記第3の計算手段によって計算された前記仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像を生成する仮想撮影手段とを含み、
     前記第1の計算手段は、前記仮想撮影手段によって生成された前記仮想空間画像にさらに基づいて、前記指令値を計算する、シミュレーション装置。
  2.  前記第1の計算手段、前記第2の計算手段、前記第3の計算手段、および、前記仮想撮影手段は、同一の時間軸にしたがって、それぞれ、前記指令値、前記仮想機械の動き、および、前記仮想対象物の動きを計算し、前記仮想空間画像を生成する、請求項1に記載のシミュレーション装置。
  3.  前記制御部は、さらに、
      前記仮想撮影手段に対応する実空間の視覚センサによって撮影された実空間画像から前記対象物または前記機械の状態を特定する特定手段と、
      前記特定手段によって特定された前記状態から前記対象物または前記機械の初期状態を計算する第4の計算手段とを含み、
     前記第1の計算手段は、前記第4の計算手段によって計算された前記初期状態をシミュレーションの開始時の状態として前記指令値を計算する、請求項1に記載のシミュレーション装置。
  4.  記憶部と、
     表示部とをさらに備え、
     前記記憶部は、
      前記仮想撮影手段に対応する実空間の視覚センサによって撮影された実空間画像と当該実空間画像に対応する前記仮想空間画像とを対応付けて予め記憶する画像記憶部を含み、
     前記制御部は、さらに、
      前記仮想撮影手段によって生成された前記仮想空間画像に対応して前記画像記憶部に記憶されている前記実空間画像を前記表示部に表示させる表示制御手段を含む、請求項1に記載のシミュレーション装置。
  5.  対象物を扱う機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを実行する制御部を有するシミュレーション装置で行なわれるシミュレーション方法であって、
     前記制御部が、
      前記制御プログラムにしたがって、仮想空間において前記機械に対応する仮想機械によって扱われ前記対象物に対応する仮想対象物のモデルデータに基づいて、前記仮想機械を動かせるための指令値を計算する第1のステップと、
      前記第1のステップで計算された前記指令値にしたがった前記仮想機械の動きを計算する第2のステップと、
      前記第2のステップで計算された前記仮想機械の動きによって動かされる前記仮想対象物の動きを計算する第3のステップと、
      前記第2のステップで計算された前記仮想機械の動き、または、前記第3のステップで計算された前記仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像を生成する仮想撮影ステップとを含み、
     前記第1のステップは、前記仮想撮影ステップで生成された前記仮想空間画像にさらに基づいて、前記指令値を計算するステップを含む、シミュレーション方法。
  6.  対象物を扱う機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを実行する制御部を有するシミュレーション装置で実行されるシミュレーションプログラムであって、
     前記制御プログラムにしたがって、仮想空間において前記機械に対応する仮想機械によって扱われ前記対象物に対応する仮想対象物のモデルデータに基づいて、前記仮想機械を動かせるための指令値を計算する第1のステップと、
     前記第1のステップで計算された前記指令値にしたがった前記仮想機械の動きを計算する第2のステップと、
     前記第2のステップで計算された前記仮想機械の動きによって動かされる前記仮想対象物の動きを計算する第3のステップと、
     前記第2のステップで計算された前記仮想機械の動き、または、前記第3のステップで計算された前記仮想対象物の動きを、仮想的に撮影した場合に得られる仮想空間画像を生成する仮想撮影ステップとを前記制御部に実行させ、
     前記第1のステップは、前記仮想撮影ステップで生成された前記仮想空間画像にさらに基づいて、前記指令値を計算するステップを含む、シミュレーションプログラム。
PCT/JP2013/054157 2012-03-15 2013-02-20 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム WO2013136930A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP13761052.3A EP2843556B1 (en) 2012-03-15 2013-02-20 Simulator, simulation method, and simulation program
US14/385,172 US9679405B2 (en) 2012-03-15 2013-02-20 Simulator, simulation method, and simulation program
US15/590,051 US10025291B2 (en) 2012-03-15 2017-05-09 Simulator, simulation method, and simulation program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012058273A JP5838873B2 (ja) 2012-03-15 2012-03-15 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
JP2012-058273 2012-03-15

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US14/385,172 A-371-Of-International US9679405B2 (en) 2012-03-15 2013-02-20 Simulator, simulation method, and simulation program
US15/590,051 Continuation US10025291B2 (en) 2012-03-15 2017-05-09 Simulator, simulation method, and simulation program

Publications (1)

Publication Number Publication Date
WO2013136930A1 true WO2013136930A1 (ja) 2013-09-19

Family

ID=49160848

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/054157 WO2013136930A1 (ja) 2012-03-15 2013-02-20 シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム

Country Status (4)

Country Link
US (2) US9679405B2 (ja)
EP (1) EP2843556B1 (ja)
JP (1) JP5838873B2 (ja)
WO (1) WO2013136930A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI661358B (zh) * 2016-10-14 2019-06-01 日商三菱電機股份有限公司 模擬裝置
WO2020032218A1 (ja) * 2018-08-10 2020-02-13 川崎重工業株式会社 トレーニング処理装置、仲介装置、トレーニングシステム及びトレーニング処理方法
JP2020026025A (ja) * 2018-08-10 2020-02-20 川崎重工業株式会社 トレーニング処理装置、仲介装置、トレーニングシステム及びトレーニング処理方法
CN114206562A (zh) * 2019-09-17 2022-03-18 欧姆龙株式会社 模拟装置、模拟程序以及模拟方法

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6115158B2 (ja) * 2013-01-31 2017-04-19 富士通株式会社 プログラム、演算装置および演算方法
JP5983442B2 (ja) * 2013-01-31 2016-08-31 富士通株式会社 プログラム、演算装置および演算方法
JP6115157B2 (ja) * 2013-01-31 2017-04-19 富士通株式会社 プログラム、演算装置および演算方法
ES2939000T3 (es) 2014-10-31 2023-04-18 Big Data In Mfg Gmbh Método para optimizar la productividad de un proceso de mecanizado de una máquina CNC
US10890900B2 (en) 2014-10-31 2021-01-12 Big Data In Manufacturing Gmbh Client device for data acquisition and pre-processing of process-related mass data from at least one CNC machine or industrial robot
US10990078B2 (en) 2014-10-31 2021-04-27 Big Data In Manufacturing Gmbh Computer-implemented method for part analytics of a workpiece machined by at least one CNC machine
JP6601179B2 (ja) 2015-11-18 2019-11-06 オムロン株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP6540472B2 (ja) 2015-11-18 2019-07-10 オムロン株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP6458713B2 (ja) * 2015-11-18 2019-01-30 オムロン株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP6551184B2 (ja) * 2015-11-18 2019-07-31 オムロン株式会社 シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
CN105892307A (zh) * 2016-06-16 2016-08-24 江西洪都航空工业集团有限责任公司 一种低成本机载武器低虚拟试验方法
JP6450727B2 (ja) * 2016-10-28 2019-01-09 ファナック株式会社 ロボットが行う物品整列作業のシミュレーションのための装置、方法、プログラム及び記録媒体
EP3330815B1 (en) 2016-12-02 2019-02-06 Omron Corporation Simulator, simulation method, and simulation program
EP3330813B1 (en) 2016-12-02 2019-02-06 Omron Corporation Simulator, simulation method, and simulation program
JP6705768B2 (ja) * 2017-04-06 2020-06-03 ファナック株式会社 情報処理装置
US10712902B2 (en) * 2017-07-14 2020-07-14 Sst Systems, Inc. Augmented reality system for conveyor system and method
JP7087316B2 (ja) * 2017-09-27 2022-06-21 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
JP7360406B2 (ja) * 2018-06-26 2023-10-12 ファナック アメリカ コーポレイション ロボット型ピッキングシステムのための拡張現実可視化
JP7124509B2 (ja) * 2018-07-19 2022-08-24 オムロン株式会社 シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
CN108942401B (zh) * 2018-08-10 2019-08-30 广东长盈精密技术有限公司 高光倒角的加工方法
US11836577B2 (en) 2018-11-27 2023-12-05 Amazon Technologies, Inc. Reinforcement learning model training through simulation
WO2020106907A1 (en) * 2018-11-21 2020-05-28 Amazon Technologies, Inc. Method and system for robotics application development
JP7275840B2 (ja) * 2019-05-16 2023-05-18 オムロン株式会社 シミュレーション装置
WO2020252187A1 (en) * 2019-06-11 2020-12-17 Cameron International Corporation Virtual integration test system and method
JP7264763B2 (ja) * 2019-08-07 2023-04-25 株式会社日立製作所 キャリブレーション装置
JP7368147B2 (ja) * 2019-09-02 2023-10-24 ファナック株式会社 搬送シミュレーション装置、及び搬送システム
JP7396872B2 (ja) * 2019-11-22 2023-12-12 ファナック株式会社 拡張現実を用いたシミュレーション装置及びロボットシステム
CN116587323B (zh) * 2023-05-12 2023-11-21 德中(深圳)激光智能科技有限公司 基于机器视觉的机械臂动态仿真系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212219A (ja) * 1996-01-31 1997-08-15 Fuji Facom Corp 三次元仮想モデル作成装置及び制御対象物の監視制御装置
JP2007241857A (ja) * 2006-03-10 2007-09-20 Fanuc Ltd ロボットシミュレーションのための装置、プログラム、記録媒体及び方法
JP2007326160A (ja) * 2006-06-06 2007-12-20 Fanuc Ltd ロボットシミュレーション装置
JP2009123069A (ja) 2007-11-16 2009-06-04 Keyence Corp 画像処理コントローラ用のプログラム作成装置
JP2009266221A (ja) * 2008-04-21 2009-11-12 Mori Seiki Co Ltd 加工シミュレーション方法及び加工シミュレーション装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030030658A1 (en) * 2001-08-10 2003-02-13 Simon Gibbs System and method for mixed reality broadcast
GB0130986D0 (en) * 2001-12-27 2002-02-13 Prophet Control Systems Ltd Programming robots with offline design
DE10248991B4 (de) * 2002-10-21 2004-12-23 Siemens Ag Vorrichtung zur Simulation des Steuerungs- und Maschinenverhaltens von Werkzeug- oder Produktionsmaschinen
JP3732494B2 (ja) * 2003-10-31 2006-01-05 ファナック株式会社 シミュレーション装置
US7920124B2 (en) * 2006-08-29 2011-04-05 Canon Kabushiki Kaisha Force sense presentation device, mixed reality system, information processing method, and information processing apparatus
US9588511B2 (en) * 2007-08-03 2017-03-07 Hurco Companies, Inc. Virtual machine manager
US20100017033A1 (en) * 2008-07-18 2010-01-21 Remus Boca Robotic systems with user operable robot control terminals

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212219A (ja) * 1996-01-31 1997-08-15 Fuji Facom Corp 三次元仮想モデル作成装置及び制御対象物の監視制御装置
JP2007241857A (ja) * 2006-03-10 2007-09-20 Fanuc Ltd ロボットシミュレーションのための装置、プログラム、記録媒体及び方法
JP2007326160A (ja) * 2006-06-06 2007-12-20 Fanuc Ltd ロボットシミュレーション装置
JP2009123069A (ja) 2007-11-16 2009-06-04 Keyence Corp 画像処理コントローラ用のプログラム作成装置
JP2009266221A (ja) * 2008-04-21 2009-11-12 Mori Seiki Co Ltd 加工シミュレーション方法及び加工シミュレーション装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KAZUNORI UMEDA: "Development of a Simulator of Environment and Measurement for Multiple Autonomous Mobile Robots Considering Camera Characteristics", JOURNAL OF THE ROBOTICS SOCIETY OF JAPAN, vol. 23, no. 7, 15 October 2005 (2005-10-15), pages 878 - 885, XP055167692 *
See also references of EP2843556A4

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI661358B (zh) * 2016-10-14 2019-06-01 日商三菱電機股份有限公司 模擬裝置
WO2020032218A1 (ja) * 2018-08-10 2020-02-13 川崎重工業株式会社 トレーニング処理装置、仲介装置、トレーニングシステム及びトレーニング処理方法
JP2020026025A (ja) * 2018-08-10 2020-02-20 川崎重工業株式会社 トレーニング処理装置、仲介装置、トレーニングシステム及びトレーニング処理方法
TWI721523B (zh) * 2018-08-10 2021-03-11 日商川崎重工業股份有限公司 訓練處理裝置、中介裝置、訓練系統以及訓練處理方法
JP7281348B2 (ja) 2018-08-10 2023-05-25 川崎重工業株式会社 トレーニング処理装置、仲介装置、トレーニングシステム及びトレーニング処理方法
US11967245B2 (en) 2018-08-10 2024-04-23 Kawasaki Jukogyo Kabushiki Kaisha Training processing device, intermediation device, training system, and training processing method
CN114206562A (zh) * 2019-09-17 2022-03-18 欧姆龙株式会社 模拟装置、模拟程序以及模拟方法

Also Published As

Publication number Publication date
US20150161808A1 (en) 2015-06-11
JP2013191128A (ja) 2013-09-26
US10025291B2 (en) 2018-07-17
EP2843556A1 (en) 2015-03-04
JP5838873B2 (ja) 2016-01-06
EP2843556A4 (en) 2015-12-16
EP2843556B1 (en) 2020-04-01
US9679405B2 (en) 2017-06-13
US20170242423A1 (en) 2017-08-24

Similar Documents

Publication Publication Date Title
JP5838873B2 (ja) シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
JP6052372B2 (ja) シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム
EP3171236B1 (en) Simulator, simulation method, and simulation program
JP5471355B2 (ja) 3次元視覚センサ
JP2008021092A (ja) ロボットシステムのシミュレーション装置
US20060025890A1 (en) Processing program generating device
JP7052250B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
JP2008100315A (ja) 制御シミュレーションシステム
KR20160011236A (ko) 시뮬레이션 시스템, 프로그래머블 컨트롤러, 시뮬레이션 장치, 엔지니어링 툴
CN108627515B (zh) 计算成为检查系统的检查对象外的图像区域的装置及方法
JP6677706B2 (ja) リンク情報生成装置、リンク情報生成方法及びリンク情報生成プログラム
JP6915441B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
KR20170016436A (ko) 작업 로봇의 교시 데이터 생성 장치 및 교시 데이터 생성 방법
JP2014065100A (ja) ロボットシステム、及びロボットのティーチング方法
CN115803155A (zh) 编程装置
EP2833223B1 (en) Simulation device, simulation method and simulation program
JP2019191737A (ja) 情報処理システム、情報処理方法、および情報処理プログラム
JP7376318B2 (ja) アノテーション装置
WO2023157083A1 (ja) ワークの位置を取得する装置、制御装置、ロボットシステム、及び方法
WO2021149646A1 (ja) 画像解析装置、制御装置、機械システム、画像解析方法、及び画像解析のためのコンピュータプログラム
CN112116666B (zh) 一种用于相机标定的位姿调节方法与装置
WO2021210514A1 (ja) ロボットの制御装置及び制御方法、ロボットシステム、ロボットの動作プログラムを生成する装置及び方法
WO2023105637A1 (ja) 産業機械の動作を検証するための装置、及び方法
Marques Rapid Development of a High-Level Robot Controller for Automated Touch-Screen Testing
JPWO2023162164A5 (ja)

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: 13761052

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2013761052

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 14385172

Country of ref document: US