WO2018194094A1 - プログラミング支援装置、ロボットシステム、プログラミング支援方法及びプログラム生成方法 - Google Patents
プログラミング支援装置、ロボットシステム、プログラミング支援方法及びプログラム生成方法 Download PDFInfo
- Publication number
- WO2018194094A1 WO2018194094A1 PCT/JP2018/016011 JP2018016011W WO2018194094A1 WO 2018194094 A1 WO2018194094 A1 WO 2018194094A1 JP 2018016011 W JP2018016011 W JP 2018016011W WO 2018194094 A1 WO2018194094 A1 WO 2018194094A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- work
- condition
- input
- job
- unit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 87
- 230000007613 environmental effect Effects 0.000 claims abstract description 182
- 238000004088 simulation Methods 0.000 claims description 80
- 238000011156 evaluation Methods 0.000 claims description 57
- 238000003860 storage Methods 0.000 claims description 54
- 238000004364 calculation method Methods 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 24
- 238000010276 construction Methods 0.000 description 41
- 238000013500 data storage Methods 0.000 description 30
- 230000008569 process Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total 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] or computer integrated manufacturing [CIM]
- G05B19/41865—Total 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] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34418—Scheduler for sequential control, task planning, control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40108—Generating possible sequence of steps as function of timing and conflicts
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/50—Machine tool, machine tool null till machine tool work handling
- G05B2219/50391—Robot
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Definitions
- the present disclosure relates to a programming support device, a robot system, a programming support method, and a program generation method.
- An operation planning device includes an adjustment unit that adjusts at least one start timing of a plurality of actions with the same subject.
- This disclosure is intended to provide a programming support device, a robot system, a programming support method, and a program generation method that are effective in reducing the burden of robot motion programming.
- a programming support apparatus includes a job storage unit that stores a plurality of work jobs that define a robot operation pattern, and an environmental condition that specifies a robot operation environment for any of the plurality of work jobs.
- a first condition setting unit that is set according to an input to the user interface, and a plurality of work jobs to be executed by the robot among the plurality of work jobs are set according to an input to the user interface
- the execution flow that defines the execution order of the plurality of execution target work jobs set by the condition setting unit and the second condition setting unit, whether or not at least one work job satisfies the environmental condition is determined in the execution order.
- a planning support unit for determining based on the plan.
- designated screen It is a block diagram which shows the functional structure of a programming module. It is a block diagram which shows the functional structure of a simulation module. It is a schematic diagram which illustrates a simulation screen. It is a schematic diagram which illustrates the selection screen of simulation object. It is a block diagram which shows the hardware constitutions of a programming assistance apparatus. It is a flowchart which shows a programming assistance procedure. It is a flowchart which shows an environment construction procedure. It is a flowchart which shows the registration procedure of attribute data. It is a flowchart which shows the registration procedure of status data. It is a flowchart which shows the setting procedure of programming assistance conditions.
- the robot system is a system that automates various operations such as processing and assembly by causing a robot to execute an operation taught by an operator.
- the robot system 1 includes a robot 2, a robot controller 3, and a programming support device 100.
- the robot 2 is, for example, a multi-axis (for example, 6-axis or 7-axis) serial link type vertical articulated robot, and is configured so that various operations can be performed while a tool is held at the tip 2a.
- the robot 2 may be any robot that can freely change the position and posture of the tip 2a within a predetermined range, and is not necessarily limited to a six-axis vertical articulated robot.
- the robot 2 may be a seven-axis vertical articulated robot in which one redundant axis is added to six axes.
- the robot controller 3 controls the robot 2 according to an operation program generated in advance.
- the operation program includes, for example, path information of the tip 2a of the robot 2.
- the path information is information for designating the temporal change of the position / posture of the distal end portion 2a.
- the path information includes a plurality of position / posture target values arranged in time series.
- the robot controller 3 calculates a joint angle target value (an angle target value of each joint of the robot 2) for matching the position / posture of the distal end portion 2a with the position / posture target value, and the robot according to the joint angle target value. 2 is controlled.
- the programming support device 100 is a device that supports programming of the operation program.
- the programming support apparatus 100 stores a plurality of work jobs that define the operation pattern of the robot 2 and inputs, to any of the plurality of work jobs, an environmental condition that specifies the operation environment of the robot 2 to the user interface. Setting a plurality of work jobs to be executed by the robot 2 among a plurality of work jobs according to an input to the user interface, and a plurality of work jobs to be executed The execution flow in which the execution order is determined is configured to execute whether at least one work job satisfies the environmental condition based on the execution order.
- the operation pattern is an operation command created in advance so that the robot 2 performs a predetermined operation.
- the operation pattern includes the path information during execution of the predetermined work.
- the programming support apparatus 100 determines the environment state at the execution timing of any one of the execution flows in the execution flow based on the operation content of the robot 2 in the other work jobs of the execution flow and the execution order of the execution flow. It may be specified and it may be determined whether or not the environmental state satisfies the environmental condition of the one work job.
- FIG. 31 schematically shows an execution flow including three work jobs for operating the robot 2 in an environment including a box 11 that has a lid 12 and accommodates a bolt 13, for example.
- FIG. 31A shows an operation job “job 01” for opening the lid 12.
- FIG. 31B shows another work job “job 02” for taking out the bolt 13 from the box 11.
- FIG. 31C shows still another job “job 03” for closing the lid 12 of the box 11.
- the operation pattern defined by each of the jobs 01, 02, 03 includes an operation of physically operating the work object.
- the operation pattern defined by the job 01 includes an operation of using the lid 12 as a work object to change the lid 12 from a closed state to an open state.
- the operation pattern defined by the job 02 includes an operation of taking out the bolt 13 from the box 11.
- the operation pattern defined by the job 03 includes an operation of opening the lid 12 from the open state to the closed state.
- Each environmental condition includes a condition that specifies the state of an object included in the work environment of the robot.
- An object included in the work environment of the robot may include the above-described work object and other objects.
- the operation of opening the lid 12 of the job 01 cannot be executed unless the lid 12 is closed.
- the lid 12 is closed is set as an environmental condition for designating the state of the lid 12 that is the work object of the job.
- the operation of taking out the bolt 13 from the box 11 of the job 02 cannot be executed unless the bolt 13 is located in the box 11 and the lid 12 is open.
- the bolt 13 is in the box 11 is set as an environmental condition for designating the state of the bolt 13 that is the work target of the job, and the lid 12 that is another object is set.
- the environmental condition for designating the state “the lid 12 is open” is set.
- the operation of closing the lid 12 of the job 03 can be executed only when the lid 12 is open.
- the lid 12 is open is set as an environmental condition for designating the state of the lid 12 that is the work object of the job.
- the programming support apparatus 100 determines the operation contents of the robot in at least the preceding work job (hereinafter referred to as “first work job”). Based on this, the environmental state at the execution timing of the subsequent work job (hereinafter referred to as “second work job”) may be specified, and it may be determined whether the environmental state satisfies the environmental condition of the second work job. .
- the operation pattern defined by the first work job includes an operation for physically operating the work object
- the environmental condition of the second work job is a condition for specifying the state of the work object. If included, the programming support apparatus 100 identifies the state of the work object after the robot 2 is operated according to the first work job as the environmental state at the execution timing of the second work job, and the environmental state is the second work It may be determined whether or not the job environmental condition is satisfied.
- the environmental state means a state that actually occurs in the work environment of the robot 2 at each timing in the execution flow when the robot 2 operates according to the execution flow. Similar to the environmental condition, the environmental state includes a state of an object included in the work environment of the robot 2.
- the object included in the work environment of the robot 2 may include the above-described work object and other objects.
- the programming support apparatus 100 identifies “open”, which is the state of the lid 12 after the robot has operated in accordance with the job 01, as the environmental state at the execution timing of the job 02. Further, since the job 01 does not include an operation for the bolt 13, the programming support apparatus 100 does not change the state of the bolt 13 before and after the robot 2 operates according to the job 01, and continues to change the state of the bolt 13 in the job 02. “In box 11”. The programming support apparatus 100 determines whether or not these environmental conditions satisfy the environmental condition of the job 02. Since the environmental conditions in the job 02 include “the bolt 13 is in the box 11” and “the lid 12 is open”, the environmental state satisfies the environmental condition in the job 02.
- the programming support apparatus 100 at least at the execution timing of the second work job based on the operation content of the robot in the first work job.
- the environmental state is identified, the environmental state is updated based on at least the operation content of the robot in the second work job, the environmental state at the execution timing of the third work job is identified, and the environmental state is the environment of the third work job. It may be determined whether the condition is satisfied.
- the programming support apparatus 100 sets the state of the lid 12 and the bolt 13 at the execution timing of the job 02 to “open” and “in the box 11” based on the operation content of the robot in the job 01. . Furthermore, the programming support apparatus 100 identifies “outside the box 11”, which is the state of the bolt 13 after the robot has operated according to the job 02, as the environmental state at the execution timing of the job 03. Further, since the job 02 does not include an operation on the lid 12, the programming support apparatus 100 does not change the state of the lid 12 before and after the robot 2 operates according to the job 02, and continues to change the state of the lid 12 in the job 03. “Open”. The programming support apparatus 100 determines whether these environmental conditions satisfy the environmental condition of the job 03. Since the environmental condition in job 03 includes “the lid 12 is open” and does not include the condition for the bolt 13, the environmental state satisfies the environmental condition in job 03.
- the programming support apparatus 100 Based on the environmental condition of any one work job in the execution flow and the operation content of the robot 2 in another work job in the execution flow, the programming support apparatus 100 satisfies the environmental condition. Therefore, an order condition required between the one work job and the other work job may be generated, and it may be determined whether or not the execution order of the execution flow satisfies the order condition.
- the execution flow is “open”, which is the state of the lid 12 after the robot 2 is operated according to the job 01, and “closed” is the state of the lid 12 after the robot 2 is operated according to the job 03.
- the execution order of the execution flow in FIG. 31 satisfies the order condition.
- the programming support device 100 may be configured to further set a timing condition for designating a relationship of execution timing between at least two work jobs to be executed based on an input to the user interface.
- Specific examples of timing conditions include conditions for specifying the order of work jobs, as well as conditions for specifying a waiting time to be secured between work jobs.
- the programming support apparatus 100 may determine, based on the execution order, whether or not at least one work job satisfies the environmental condition in the execution flow in which the execution order is determined so as to satisfy the timing condition. .
- FIG. 34 shows an example of setting timing conditions.
- a condition that “job 01 is executed before job 02” is set between job 01 and job 02, and “job 03 is set between job 02 and job 03”.
- the condition “execute after job 02” is set.
- the state of the lid 12 at the execution timing of the job 02 is necessarily “open”. Therefore, when the timing condition shown in FIG. 34 is set, it is not essential to specify the state of the lid 12 as the environmental condition of the job 02. In other words, if the environmental condition of job 02 includes “the lid is open”, it is not essential to set the timing condition of FIG.
- the operation program is executed by, for example, a controller (for example, robot controller 3) that controls one or more control objects such as the robot 2.
- the control target on which the programming support apparatus 100 executes programming support for the operation program is not limited to one robot 2.
- the programming support apparatus 100 may be configured to execute programming support for an operation program for controlling a plurality of control objects (for example, a plurality of robots 2).
- the programming support apparatus 100 includes a main body 110 configured by one or a plurality of computers, and a user interface 130.
- the user interface 130 includes a monitor 131 and an input device 132, for example.
- the monitor 131 is a device for displaying information output from the main body 110.
- the monitor 131 may be anything as long as it can display graphics, and a specific example thereof is a liquid crystal panel.
- the input device 132 is a device for inputting information to the main body 110.
- the input device 132 may be any device that can input desired information, and specific examples thereof include a keypad and a mouse. Note that the monitor 131 and the input device 132 may be integrated as a touch panel having both an input function and a display function.
- the main body 110 includes a main module 200, an environment construction module 300, a condition setting module 400, a programming module 500, and a simulation module 600 as a functional configuration (hereinafter referred to as “functional module”).
- the main module 200 is a module for calling various functions of the programming support apparatus 100 in accordance with user input.
- the environment construction module 300 is a module for constructing environment model data (model data) for operation simulation of the robot 2.
- the environmental model data is, for example, three-dimensional surface data in which a model of the robot 2 and its surrounding environment is composed of polygons.
- the environment construction module 300 writes the constructed environment model data in the environment data storage unit 111.
- the condition setting module 400 is a module for setting a programming support condition including a first constraint condition that is a constraint condition for execution for each work job and a second constraint condition that is a constraint condition regarding the relationship between work jobs. It is.
- the first constraint condition includes conditions unavoidable to achieve the purpose of the work job, such as the environmental conditions described above.
- the above-mentioned unavoidable condition is that a work job for putting a workpiece in and out of a box with a lid is executed with the lid open.
- the above-mentioned unavoidable conditions are that the tool is held, the tool is turned on, and the like.
- the second constraint condition includes a condition that defines the relationship between work jobs, such as the timing condition described above.
- the relationship between work jobs may be derived from the first constraint condition, or may not be derived from the first constraint condition.
- the second constraint condition includes a condition that is unavoidable in order to achieve the purpose of each work job.
- the programming module 500 is a module that executes programming support for the operation program in accordance with the programming support conditions set by the condition setting module 400. For example, the programming module 500 generates an operation program according to the programming support conditions and writes the operation program in the operation program storage unit 112. The programming module 500 may check a provisional flow for generating an operation program.
- the simulation module 600 is a module that executes an operation simulation of the robot 2.
- the operation simulation means that the model of the robot 2 is operated in a simulation environment.
- the simulation module 600 follows the operation program (the operation program stored in the operation program storage unit 112) in a simulation environment specified by the environment model data (environment model data stored in the environment data storage unit 111).
- the model of the robot 2 is operated.
- the main module 200 includes a screen data generation unit 201 and a module switching unit 202.
- the screen data generation unit 201 generates data for displaying the main screen A1 (see FIG. 3) on the monitor 131.
- the main screen A1 is an operation screen for calling various functions of the programming support apparatus 100.
- the module switching unit 202 is associated with one or more buttons on the user interface that switch modules to be executed in response to an operation input to the main screen A1.
- the main screen A1 has, for example, an environment construction button A2, a planning button A3, a simulation button A4, and an end button A5.
- the environment construction button A2 is a button for starting the environment construction module 300.
- the planning button A3 is a button for starting the condition setting module 400 and the programming module 500.
- the simulation button A4 is a button for starting the simulation module 600.
- the end button A5 is a button for closing the main screen and ending the processing by the main module 200.
- the environment construction module 300 includes a screen data generation unit 301, an update unit 302, a model addition unit 303, and a drawing data generation unit as more detailed function modules. 304, an attribute data registration unit 305, and a state data registration unit 306.
- the screen data generation unit 301 generates data for displaying the environment construction screen B1 on the monitor 131.
- the environment construction screen B1 is an input screen for constructing environmental model data.
- the model is also referred to as an “input target model”.
- a model represents an object in a simulation environment.
- the input target model may be selected from images displayed in the simulation environment area (B2).
- the environment construction screen B1 includes, for example, a simulation environment area B2, a model addition button B3, an attribute setting button B4, a state setting button B5, and an end button B6.
- the simulation environment area B2 is an area for displaying the simulation environment indicated by the environmental model data being constructed as a three-dimensional image or the like.
- the model addition button B3 is a button for adding model data to the environmental model data.
- the model data is three-dimensional surface data composed of, for example, polygons.
- Attribute setting button B4 is a button for inputting data (hereinafter referred to as “attribute data”) for specifying an object included in the environmental model data.
- the state setting button B5 is a button for inputting data indicating the state of an object included in the environmental model data (hereinafter referred to as “state data”).
- state data data indicating the state of an object included in the environmental model data
- the object is a box with a lid
- “a state where the lid is open”, “a state where the lid is closed”, and the like can be given.
- the object is a tool used by switching on and off, “on state”, “off state” and the like can be cited.
- the end button B6 is a button for closing the environment construction screen B1 and terminating the processing by the environment construction module 300.
- the update unit 302 updates the display data of the environment construction screen B ⁇ b> 1 according to the operation input to the input device 132. For example, the update unit 302 updates the display data on the environment construction screen B1 so as to display the model selection screen C1 in response to the model addition button B3 being clicked. Further, the update unit 302 updates the display data of the environment construction screen B1 so as to display the attribute input screen D1 in response to the click of the attribute setting button B4. Furthermore, the update unit 302 updates the display data on the environment construction screen B1 so as to display the state input screen F1 in response to the state setting button B5 being clicked.
- the model selection screen C1 shown in FIG. 6 is opened on the user interface.
- the model selection screen C1 is a screen for selecting model data to be added to the environmental model data.
- the model selection screen C1 has a list display area C2 and an add button C3.
- the list display area C2 displays a list of model data that can be added to the environmental model data.
- the add button C3 is a button for instructing addition of the model data selected in the list display area C2.
- the attribute input screen D1 shown in FIG. 7 is opened on the user interface.
- the attribute input screen D1 is a screen for inputting attribute data of the input target model.
- the input target model can be selected by clicking one of the models displayed in the simulation environment area B2 (FIG. 5) as a component of the environmental model data.
- the attribute input screen D1 has an input box D2, an input box D3, an icon addition button D4, and a registration button D5.
- the input box D2 is an input box for inputting the type of the input target model (for example, “robot”, “tool”, “work”, “apparatus”, etc.).
- the input box D2 may be configured to enable selection input of options registered in advance (see FIG. 7B).
- the input box D3 is an input box for inputting the name of the input target model.
- the icon addition button D4 is a button for inputting icon data associated with the input target model.
- the icon data can be input on the icon selection screen E1 (FIG. 8) displayed when the icon addition button D4 is clicked.
- the icon selection screen E1 has a list display area E2 and an add button E3.
- the list display area E2 displays a list of usable icon data.
- the add button E3 is a button for instructing addition of the icon data selected in the list display area E2.
- the registration button D5 is a button for instructing registration of data input on the attribute input screen D1.
- the registration button D5 is a button for registering (or recording) the input attribute data in the storage in association with the input target model (or “thing” or “model part” in the simulation environment).
- the state input screen F1 shown in FIG. 9 is opened on the user interface.
- the state input screen F1 includes an input box F2, an input box F3, and a registration button F4.
- the input box F2 is an input box for selecting an input target model.
- the input box F2 may be configured to allow selection input of a model name registered in the environment data storage unit 111.
- the input box F3 is an input box for inputting a state name.
- the registration button F4 is a button for instructing registration of data input on the state input screen F1.
- the registration button F4 is a button for registering (or recording) the input state in the storage in association with the input target model (or “thing” or “model part” in the simulation environment).
- the update unit 302 displays an image of the simulation environment after the addition after the model addition button B ⁇ b> 3 is clicked on the environment construction screen B ⁇ b> 1 (FIG. 5) and the model data is added to the environment model data.
- the display data in the simulation environment area B2 is updated.
- the model adding unit 303 adds model data to the environmental model data in the environmental data storage unit 111 in response to an input to the user interface 130. For example, the model addition unit 303 generates a list of model data with reference to the model data storage unit 113 in response to the click of the model addition button B3 (FIG. 5), and displays the list display area C2 (FIG. 6). It outputs to the update part 302 as data for use.
- the model data storage unit 113 stores a plurality of model data (or data elements) that may be created in advance.
- the model data storage unit 113 may be provided in the programming support apparatus 100, or may be provided in another apparatus (for example, a computer for three-dimensional design) of the programming support apparatus 100.
- the model adding unit 303 then acquires the model data selected by clicking the add button C3 from the model data storage unit 113, and the environment of the environment data storage unit 111. Add to model data.
- the drawing data generation unit 304 generates simulation environment drawing data using the environment model data stored in the environment data storage unit 111, and outputs the drawing data to the update unit 302 as display data for the simulation environment area B2 (FIG. 5). .
- the attribute data registration unit 305 adds the attribute data to the environmental model data in the environmental data storage unit 111 in response to an input to the user interface 130. For example, the attribute data registration unit 305 acquires the data input on the attribute input screen D1 (FIG. 7) in response to a click on the registration button D5 (FIG. 7), and associates it with the input target model in the environment data storage unit 111.
- the attribute data registration unit 305 acquires the data input on the attribute input screen D1 (FIG. 7) in response to a click on the registration button D5 (FIG. 7), and associates it with the input target model in the environment data storage unit 111.
- the state data registration unit 306 adds the state data to the environmental model data in the environmental data storage unit 111 in response to an input to the user interface 130. For example, the state data registration unit 306 acquires data input on the state input screen F1 (FIG. 9) in response to a click on the registration button F4 (FIG. 9), and associates it with the input target model in the environment data storage unit 111. Write.
- the condition setting module 400 sets the first constraint condition and the second constraint condition separately.
- the condition setting module 400 includes a screen data generation unit 401, a first update unit 402, a second update unit 403, a third update unit 404, as more detailed function modules.
- the provisional flow generation unit 416, the second condition setting unit 417, the calculation level setting unit 418, and the condition registration unit 419 are included.
- the screen data generation unit 401 displays the input screen (see FIG. 11) including the first input area for inputting the first constraint condition and the second input area for inputting the second constraint condition as display data for the monitor 131. Is output to the monitor 131.
- the screen data generation unit 401 may generate input screen display data further including a list display area indicating a list of a plurality of work jobs.
- the screen data generation unit 401 may generate input screen display data such that the list display area is arranged between the first input area and the second input area.
- the screen data generation unit 401 generates display data for the planning screen G1 (input screen) shown in FIG.
- the planning screen G1 includes a list display area G2, a first input area G9, a second input area G20, a constraint menu display area G32, a third input area G34, a condition registration button G36, a planning button G37, And a save button G38.
- the list display area G2 displays a list of a plurality of work jobs created in advance.
- the list display area G2 displays a plurality of list elements G3 respectively corresponding to a plurality of work jobs.
- the list element G3 may be arranged in a predetermined time series order.
- the list element G3 includes a name display part G5 and an icon display part G6.
- the name display unit G5 displays the name of the work job in a text format.
- the icon display unit G6 displays one or more icons related to the contents of the work job (for example, icons of work objects).
- the first input area G9 is an area for inputting the first constraint condition.
- the first input area G9 includes a work content input area G10 and a constraint condition input area G16.
- Work content input area G10 is an area for inputting information (hereinafter referred to as “work content information”) for specifying the content of a work job.
- the work content information includes, for example, information for specifying the work object and information for specifying the operation content for the work object.
- the work object may be any object as long as it is a work object by the robot 2.
- the tool used by the robot 2 when working on the workpiece is also included in the work object because it is a target of the transfer work by the robot 2.
- the work content input area G10 includes a plurality of item designation buttons G11, an icon selection area G12, an input content display area G13, and a name input area G15.
- the item designation button G11 is a button for selecting an item of the work content information.
- the icon selection area G12 displays, as icons, options that can be input to the item selected by clicking the item designation button G11.
- target options for example, boxes, bolts, items accommodated in a box, etc.
- tool options for example, screwdriver, wrench, jig, etc.
- the input content display area G13 displays input work content information.
- the name input area G15 acquires the input of the name of the work job.
- Constraint condition input area G16 is an area for inputting constraint conditions.
- the constraint condition input area G16 includes a plurality of condition input units G17. Each condition input unit G17 acquires an input of one constraint condition.
- the condition input part G17 has a new creation button G18 and a display part G19.
- the new creation button G18 is a button for displaying a condition creation screen H1 (described later with reference to FIG. 12).
- the display unit G19 displays the condition created on the condition creation screen H1.
- the second input area G20 is an area for inputting the second constraint condition.
- the second input area G20 has a condition input part G21 and a result output part G29.
- the condition input part G21 includes a flow display part G22 and a tab G28.
- the flow display unit G22 displays a temporary flow G23 in which a plurality of flow elements G24 are arranged and at least one condition element G25.
- the temporary flow G23 represents a procedure including a work job executed by a control target (for example, the robot 2).
- the temporary flow G23 indicates the execution order of a plurality of work jobs selected to constitute an operation program.
- the plurality of flow elements G24 correspond to a plurality of work jobs, respectively.
- the programming support device 100 executes programming support of an operation program for a plurality of control objects (for example, robots)
- the second input area G20 displays a plurality of temporary flows G23 respectively corresponding to the plurality of control objects, as shown in FIG. You may display as illustrated by the tabs named "Procedure 1" and "Procedure 2".
- the condition element G25 illustrates the second constraint condition set between work jobs in the temporary flow G23.
- the condition element G25 is displayed in association with two flow elements G24 respectively corresponding to two work jobs for which the second constraint condition is set.
- condition element G25 indicates a constraint condition for grouping the first work job and the second work job as a set of jobs, and surrounds the first flow element G24 and the second flow element G24. It is displayed as a frame.
- the condition element G26 indicates a constraint condition for determining a time interval to be secured between the fifth work job and the sixth work job.
- the fifth flow element G24 and the sixth flow element G24 are It is shown on the connecting line.
- the condition element G27 indicates a constraint condition for determining a time interval to be secured between the third work job and the fifth work job, and the third flow element without passing through the fourth flow element G24. It is shown on the line connecting G24 and the fifth flow element G24.
- the tab G28 is provided in the upper part of the flow display part G22 and is used for display switching between the condition input part G21 and the result output part G29.
- the result output unit G29 displays the execution flow generated by the programming module 500.
- the result output unit G29 includes a flow display unit G30 that displays an execution flow, and a tab G31.
- the flow display part G30 is displayed at the same position as the flow display part G22.
- the tab G31 is provided in the upper part of the flow display part G30 at a position different from the above-described tab G28.
- the tab G31 is clicked while the flow display part G22 is displayed, the flow display part G30 can be displayed.
- the flow display part is displayed.
- G22 can be displayed.
- Constraint menu display area G32 displays a list of a plurality of constraint conditions that can be input to the second input area G20.
- the restriction menu display area G32 displays a plurality of menu elements G33 respectively corresponding to a plurality of restriction conditions.
- the restriction menu display area G32 is arranged between the first input area G9 and the second input area G20 so as to be adjacent to the list display area G2.
- the third input area G34 obtains an input of a calculation level (described later) in programming support.
- the third input area G34 is configured so that a plurality of preset calculation levels can be selected by the radio button G35.
- the third input area G34 is arranged between the first input area G9 and the second input area G20, and is arranged so as to be adjacent to the list display area G2 on the opposite side to the restricted menu display area G32. Has been.
- the condition registration button G36 is a button for instructing registration of input contents in the first input area G9, the second input area G20, and the third input area G34.
- the planning button G37 is a button for instructing execution of programming support according to the input contents to the first input area G9, the second input area G20, and the third input area G34. Executing the programming support may be, for example, generating an operation program for operating the robot controller.
- the save button G38 is a button for instructing to save the operation program generated by the programming support.
- the input screen may be configured in any manner as long as it includes the first input area and the second input area.
- the input screen may be configured such that the first input area and the second input area are positioned above and below the list display area.
- the input screen may be configured to switch and display at least a part of the first input area and at least a part of the second input area at the same position.
- the first update unit 402 updates the display data in the first input area G ⁇ b> 9 according to the input to the user interface 130.
- the first update unit 402 may update the display data in the first input area G9 so that the first constraint condition of the work job selected in the list display area G2 can be input. For example, when any list element G3 is clicked (selected) in the list display area G2, the first update unit 402 can input the first constraint condition of the work job corresponding to the list element G3.
- the display data in the first input area G9 is updated. More specifically, the first update unit 402 displays the information on the input part of the item for items that have already registered information on the work job, and displays the input part of the item for other items.
- the display data in the first input area G9 is updated so as to be blank. For example, the work job may have already set conditions for some items (objects, tools, etc.).
- the first update unit 402 acquires already registered information from the condition reading unit 411 described later.
- the 1st update part 402 updates the display data of the 1st input area G9 according to the input to the 1st input area G9. For example, when the work content information is input by operating the item specifying button G11 and the icon selection area G12, the first update unit 402 updates the input content display area G13 to reflect the input content.
- the first update unit 402 displays the input content in the name input area G15 in response to the text input in the name input area G15.
- the first update unit 402 updates the display data in the first input area G9 so as to display the condition creation screen H1 in response to clicking of the new creation button G18 in the condition input unit G17.
- the condition creation screen H1 has an input box H2, an input box H3, an input box H4, and a creation button H5 as shown in FIG.
- the input box H2 is an input box for inputting a work object.
- the input box H3 is an input box for inputting the application timing of the constraint condition.
- the application timing is information indicating at which point during execution of the work job the constraint condition is applied.
- the input box H4 is an input box for inputting a state specifying condition for specifying the state of the work object as an example of a constraint condition.
- the input boxes H2, H3, and H4 may be configured to enable selection input of options registered in advance (see FIG. 12B).
- the creation button H5 is a button for instructing creation of a condition in accordance with data input on the condition creation screen H1.
- the first update unit 402 creates a condition according to the data input on the condition creation screen H1, and displays the display data in the first input area G9 so that the condition is displayed on the display unit G19. Update.
- the second update unit 403 updates the display data in the second input area G20 according to the input to the user interface 130.
- the second update unit 403 displays the plurality of work jobs selected in the list display area G2, and displays the display data in the second input area G20 so that the second constraint condition between the plurality of work jobs can be input. Update.
- the second update unit 403 displays the temporary flows G23 of the plurality of work jobs selected in the list display area G2, and the second input area so that the second constraint condition can be input between the work jobs in the temporary flow G23.
- the display data for G20 may be updated. For example, every time an input is made to place the list element G3 selected in the list display area G2 in the second input area G20, the second update unit 403 sends a work job corresponding to the list element G3 to the second input area G20. Update the display data to add to the display. More specifically, the second update unit 403 updates the display data so as to add the flow element G24 corresponding to the work job to the temporary flow G23.
- the second update unit 403 displays the plurality of temporary flows G23 respectively corresponding to the plurality of control objects.
- the display data for G20 may be updated.
- the second update unit 403 sets the restriction condition corresponding to the menu element G33 in question.
- the display data in the second input area G20 is updated so as to be inserted between the flow elements G24.
- the second update unit 403 inserts a constraint between the flow elements G24 of different control objects in the second input area G20.
- the display data may be updated.
- the second constraint may be inserted or added, for example, by first selecting two flow elements. Selecting two flow elements may include clicking (or selecting) a line connecting the two flow elements G24.
- the second update unit 403 updates the display data in the second input area G20 so as to display the restriction input screen J1 when the line connecting the flow elements G24 is clicked.
- the restriction input screen J1 is a screen for inputting constraint conditions between work jobs corresponding to the flow elements G24. As shown in FIG. 13, the restriction input screen J1 includes an input box J2.
- the input box J2 is an input box for inputting presence / absence of order restriction (prohibition of order change).
- the input box J2 may be configured to enable selection input of “present” (indicating that there is an order constraint) and “none” (indicating that there is no order constraint) (FIG. 13). (See (b)).
- the temporary flow G23 is generated by the temporary flow generation unit 416.
- the temporary flow generation unit 416 drags the list element G3 of the second work job to the second input area G20 while the flow element G24 of the first work job is displayed in the second input area G20.
- the order of the first work job and the second work job is set based on the positional relationship between the drag completion position and the existing flow element G24, and the first temporary flow G23 is generated.
- the temporary flow G23 includes the first flow element G24 corresponding to the first work job and the dragging completion position of the list element G3 corresponding to the second work job is below the flow element G24, two The first flow element G24 is generated, and the temporary flow G23 is updated so that the second work job is executed after the first work job.
- the completion position of the drag is on the first flow element G24, the temporary flow G23 is updated so that the second work job is executed before the first work job.
- the temporary flow generation unit 416 obtains the insertion position of the work job according to the relationship between the existing flow element G24 and the drag completion position.
- the temporary flow generation unit 416 may generate a plurality of temporary flows G23 respectively corresponding to the plurality of control objects.
- the third update unit 404 updates the display data in the third input area G34 in accordance with the input to the user interface 130. For example, the third update unit 404 updates the display data so as to turn on the radio button G35 clicked or selected in the third input area G34.
- the list generation unit 405 generates a list of work jobs to be displayed in the list display area G2, and outputs the list to the screen data generation unit 401.
- the list generation unit 405 refers to the work job storage unit 114 and generates a list of work jobs.
- the work job storage unit 114 stores a plurality of work jobs created in advance by the user.
- the work job storage unit 114 may be provided in the programming support device 100 or may be provided in another device (for example, the robot controller 3) of the programming support device 100.
- the constraint menu generation unit 406 generates a list of constraint conditions for display in the constraint menu display area G32 and outputs the list to the screen data generation unit 401.
- the restriction menu generation unit 406 refers to the restriction menu storage unit 407 and generates a list of restriction menus.
- the restriction menu storage unit 407 stores a plurality of restriction menus created in advance.
- the option information acquisition unit 410 acquires, from the environment data storage unit 111, first option information for specifying an object included in the environmental model data and second option information indicating the state of the object.
- the first input support unit 408 sets options for the work object and generates data for displaying the options. For example, the first input support unit 408 generates an option for causing the input box H2 (FIG. 12) to select and input a work object on the condition creation screen H1.
- the first input support unit 408 may set work object options based on the first option information. In this case, information acquired by the environment construction module 300 is used as a work object option.
- the second input support unit 409 sets the option for the state designation condition according to the work object to be designated for the state, and generates data for displaying the option. For example, the second input support unit 409 generates an option for causing the input box H4 (FIG. 12) to select and input a state in accordance with the work object input in the input box H2 on the condition creation screen H1.
- the second input support unit 409 may set options for the state designation condition based on the second option information. In this case, information acquired by the environment construction module 300 is used as an option for the state designation condition.
- the second input support unit 409 extracts the state of the work object input in the input box H2 from the second option information, and uses the extraction result as an option for the state designation condition.
- the first condition setting unit 412 sets the first constraint condition according to the input to the user interface 130, and associates the first constraint condition with the identification information of the work job that is the target of the first constraint condition, thereby temporarily storing the condition buffer. Write to 415.
- the first constraint condition may include a state designation condition for designating the state of the work object of the work job.
- the first condition setting unit 412 may include an object setting unit 413 and a state setting unit 414 as more detailed function modules.
- the object setting unit 413 sets the work object of the work job based on the input to the first input area G9.
- the object setting unit 413 sets the work object of the work job based on the content displayed in the input content display area G13.
- the state setting unit 414 sets a state designation condition based on the input to the first input area G9.
- the state setting unit 414 sets a work object state specifying condition based on the content input to the condition input unit G17.
- the second condition setting unit 417 sets a second constraint condition, which is a constraint condition regarding the relationship between work jobs, in accordance with an input to the user interface 130. For example, the second condition setting unit 417 sets the second constraint condition based on the constraint condition input between work jobs in the second input area G20.
- the second condition setting unit 417 may set a constraint condition between work jobs of different control objects.
- the calculation level setting unit 418 sets a calculation level (to be described later) in programming support according to an input to the user interface 130. For example, the calculation level setting unit 418 sets a calculation level for adjusting a reference for determining whether or not an execution flow described later is adopted.
- the condition registration unit 419 registers at least one of the first constraint condition and the second constraint condition in the condition storage unit. For example, the condition registration unit 419 writes the storage contents of the condition buffer 415 (eg, associated with the first constraint condition) in the individual condition storage unit 420. In addition, the condition registration unit 419 writes the second constraint condition set by the second condition setting unit 417 in the inter-job condition storage unit 422 in association with the work job that is the target of the second constraint condition. Furthermore, the condition registration unit 419 writes the plurality of work jobs displayed in the second input area G20 in the execution target storage unit 421 as execution target jobs.
- condition registration unit 419 writes a plurality of work jobs respectively corresponding to the plurality of flow elements G24 of the temporary flow G23 in the execution target storage unit 421 as execution target jobs. Furthermore, the condition registration unit 419 writes the calculation level set by the calculation level setting unit 418 in the calculation condition storage unit 423.
- the condition reading unit 411 reads at least one of the first constraint condition and the second constraint condition from the condition storage unit. For example, the condition reading unit 411 reads the first constraint condition from the individual condition storage unit 420.
- the programming module 500 is activated in response to a click on the planning button G37 (FIG. 11). As illustrated in FIG. 14, the programming module 500 includes a planning support unit 501 and a program generation unit 510 as more detailed function modules.
- the planning support unit 501 checks the execution timing of at least one work job based on the first constraint condition and the second constraint condition. Check means checking whether the first constraint condition and the second constraint condition are satisfied.
- the planning support unit 501 stores a plurality of work jobs that define the operation pattern of the robot, and inputs an environmental condition that specifies the operation environment of the robot 2 for any one of the plurality of work jobs to the user interface. Setting a plurality of work jobs to be executed by the robot 2 among a plurality of work jobs according to an input to the user interface, and a plurality of work jobs to be executed In the execution flow in which the execution order is determined, it is determined whether or not at least one work job satisfies the environmental condition based on the execution order.
- the execution flow may be automatically generated by the planning support unit 501 or may be set and input by the user. Below, the case where the planning assistance part 501 produces
- the planning support unit 501 includes a determination unit 504, a flow adjustment unit 503, a path information acquisition unit 505, a connection job generation unit 506, a flow evaluation unit 507, and an update unit 502 as more detailed function modules. Including.
- the determination unit 504 checks the execution timing of at least one work job based on the first constraint condition stored in the individual condition storage unit 420 and the second constraint condition stored in the inter-job condition storage unit 422. .
- the determination unit 504 determines, based on the execution order, whether or not at least one work job satisfies the environmental condition in the execution flow in which the execution order of the plurality of execution target work jobs is determined.
- the determination unit 504 specifies the environmental state at the execution timing of any one work job in the execution flow based on the operation content of the robot 2 in another work job of the execution flow and the execution order of the execution flow. Then, it is determined whether or not the environmental state satisfies the environmental condition of the one work job.
- the determination unit 504 identifies the environmental state at the execution timing of the second work job based on at least the operation content of the robot 2 in the first work job. It may be determined whether the environmental state satisfies the environmental condition of the second work job.
- the operation pattern defined by the first work job includes an operation for physically operating the work object
- the environmental condition of the second work job is a condition for specifying the state of the work object. If it is included, the determination unit 504 identifies the state of the work target after the robot 2 is operated according to the first work job as the environmental state at the execution timing of the second work job, and the environmental state is the second work job. It may be determined whether or not the environmental condition is satisfied.
- the determination unit 504 determines at the execution timing of the second work job based on at least the operation content of the robot 2 in the first work job.
- the environmental state is specified, the environmental state is updated based on at least the operation content of the robot 2 in the second work job, the environmental state at the execution timing of the third work job is specified, and the environmental state is the third work job. It may be determined whether an environmental condition is satisfied.
- the determination unit 504 determines that the one work job satisfies the environmental condition based on the environmental condition of any one work job in the execution flow and the operation content of the robot 2 in the other work job of the execution flow. In addition, an order condition required between the one work job and the other work job may be generated, and it may be determined whether or not the execution order of the execution flow satisfies the order condition.
- the flow adjustment unit 503 generates an execution flow that is a determination target by the determination unit 504 so as to satisfy the timing condition. Further, when it is determined that any work job does not satisfy the environmental condition in the execution flow, the execution order is changed so as to satisfy the timing condition. For example, the flow adjustment unit 503 randomly generates an execution flow of a plurality of work jobs stored in the execution target storage unit 421 within a range that satisfies the timing condition. After that, when it is determined that any work job does not satisfy the environmental condition in the execution flow, the flow adjustment unit 503 randomly changes the execution order so as to satisfy the timing condition.
- the flow adjusting unit 503 repeats changing the execution order until the execution flow that satisfies the timing condition does not include a work job that does not satisfy the environmental condition. Every time the execution flow is generated or changed, the flow adjustment unit 503 overwrites the result in the temporary storage flow buffer 508.
- the flow adjustment unit 503 may generate a plurality of execution flows respectively corresponding to the plurality of control objects.
- the path information acquisition unit 505 acquires first path information that defines the motion path of the robot 2 (sequential transition of the position and orientation of the tip 2a) for at least one work job. For example, the path information acquisition unit 505 reads all first path information of the work job to be executed from the execution target storage unit 421.
- the bridging job generation unit 506 Second path information for defining an operation path of the robot 2 between work jobs is generated. For example, the bridging job generation unit 506 connects the end point of the operation path of the preceding work job and the start point of the operation path of the subsequent work job, and avoids the collision between the robot 2 and the surrounding arrangement. Second path information is generated and written to the temporary storage path buffer 509.
- the bridging job generation unit 506 repeatedly generates a waypoint that can avoid a collision and corrects the path so as to pass through the route point until the collision can be avoided over the entire path.
- a more specific path generation method is disclosed in, for example, Japanese Patent No. 4103057.
- the flow evaluation unit 507 evaluates at least one of the execution flow, the first path information, and the second path information based on an evaluation condition different from the first constraint condition and the second constraint condition, and executes based on the evaluation result. Determine whether the flow can be adopted. For example, the flow evaluation unit 507 evaluates the execution flow, the first path information, and the second path information based on the evaluation condition, and determines whether or not the execution flow can be adopted based on the evaluation result.
- the evaluation result may be an indication of an execution time when the execution flow is executed as an operation program, an energy consumption when the operation program is executed, or the like. The evaluation result may be compared with a reference value to determine whether the evaluation condition is satisfied and whether the execution flow can be adopted.
- the flow evaluation unit 507 derives a predetermined evaluation value for the operation program according to the execution flow, the first path information, and the second path information, and executes when the evaluation value reaches the pass line.
- the flow can be adopted, and the execution flow cannot be adopted when the evaluation value does not reach the pass line.
- Specific examples of the evaluation value include an execution time of the operation program, or power consumption of the operation program (power consumption of the robot 2 operating according to the operation program).
- the evaluation value may be derived by combining the execution time and the power consumption.
- the flow evaluation unit 507 may repeat the generation of the execution flow and the derivation of the evaluation value for a predetermined time to adopt the execution flow that provides the most preferable evaluation value.
- the flow evaluation unit 507 may adopt an execution flow that minimizes the execution time of the operation program, or may adopt an execution flow that minimizes the power consumption of the operation program.
- the flow evaluation unit 507 may adjust the reference for determining whether or not the execution flow can be adopted according to the calculation level stored in the calculation condition storage unit 423. For example, the flow evaluation unit 507 may increase the pass line as the calculation level stored in the calculation condition storage unit 423 increases, or repeat the generation of the execution flow and the derivation of the evaluation value. May be lengthened.
- the flow evaluation unit 507 may adjust the accuracy of the operation program to be evaluated according to the calculation level stored in the calculation condition storage unit 423. For example, the flow evaluation unit 507 may simplify the operation program to be evaluated and shorten the calculation time as the calculation level stored in the calculation condition storage unit 423 decreases. As a specific example of simplification, generation of the second path information is omitted, the operation path between work jobs is made linear, the time between work jobs is made constant, and the mesh in the environmental model data is made rough And so on.
- the updating unit 502 updates the display data in the second input area G20 so that the execution flow accepted by the flow evaluation unit 507 is displayed on the result output unit G29.
- the program generation unit 510 generates an operation program for the robot 2 based on the execution flow determined to be adoptable by the planning support unit 501.
- the operation program is, for example, the first path information and the second path information arranged in accordance with the execution flow.
- the program registration unit 511 registers the operation program generated by the program generation unit 510 in the operation program storage unit 112 in response to an input to the user interface 130. For example, the program registration unit 511 writes the operation program in the operation program storage unit 112 in response to the save button G38 being clicked.
- the programming module 500 only needs to provide programming support based on at least the execution timing check result, and therefore it is not always necessary to automatically generate an operation program.
- the programming module 500 may be configured to display a warning to that effect when the execution flow input by the user does not satisfy at least one of the first constraint condition and the second constraint condition.
- the simulation module 600 includes a screen data generation unit 601, an update unit 602, a program setting unit 603, a simulation execution unit 604, as more detailed functional modules.
- the screen data generation unit 601 generates data for displaying the simulation screen K1 on the monitor 131.
- the simulation screen K1 is a screen for graphically displaying the simulation result.
- the simulation screen K1 has a drawing area K2, a program selection button K3, a simulation execution button K4, and an end button K5.
- the drawing area K2 is an area for displaying a simulation result by a three-dimensional image or the like.
- the program selection button K3 is a button for selecting an operation program to be simulated.
- the simulation execution button K4 is a button for instructing execution of simulation.
- the end button K5 is a button for closing the simulation screen K1 and ending the processing by the simulation module 600.
- the update unit 602 updates the display data on the simulation screen K1 according to the operation input to the input device 132.
- the update unit 602 updates the display data on the simulation screen K1 to display the program selection screen L1 in response to the program selection button K3 being clicked.
- the program selection screen L1 is a screen for selecting an operation program to be simulated.
- the program selection screen L1 has a list display area L2 and a selection button L3.
- the list display area L2 displays a list of selectable operation programs (for example, operation programs stored in the operation program storage unit 112).
- the selection button L3 is a button for instructing selection of the operation program selected in the list display area L2.
- the update unit 602 displays the drawing area K2 so that the moving image data (described later) is generated according to the simulation result when the simulation execution button K4 is clicked and the moving image data is displayed in the list display area L2. Update the data.
- the program setting unit 603 sets the operation program selected on the program selection screen L1 as the operation program to be simulated.
- the simulation execution unit 604 executes an operation simulation of the robot 2.
- the simulation execution unit 604 operates the model of the robot 2 in accordance with the operation program to be simulated in the simulation environment specified by the environment model data stored in the environment data storage unit 111.
- the moving image data generation unit 605 generates moving image data of the model of the robot 2 according to the simulation result by the simulation execution unit 604.
- FIG. 18 is a block diagram illustrating a hardware configuration of the main body 110.
- the main body 110 includes a circuit 120, and the circuit 120 includes one or more processors 121, a storage unit 122, a communication port 125, and an input / output port 126.
- the storage unit 122 includes a memory 123 and a storage 124.
- the storage 124 stores a program for configuring each functional module of the main body 110.
- the storage 124 may be anything that can be read by a computer. Specific examples include a hard disk, a nonvolatile semiconductor memory, a magnetic disk, and an optical disk.
- the memory 123 temporarily stores the program loaded from the storage 124, the calculation result of the processor 121, and the like.
- the processor 121 configures each functional module by executing a program in cooperation with the memory 123.
- the communication port 125 inputs and outputs electrical signals to and from the robot controller 3 in response to commands from the processor 121.
- the input / output port 126 inputs / outputs electrical signals between the monitor 131 and the input device 132 in accordance with a command from the processor 121.
- Program Generation Method Next, a program generation procedure executed by the programming support apparatus 100 will be described as an example of a program generation method and a programming support method.
- Step S 01 the screen data generation unit 201 generates display data for the main screen A 1 and outputs it to the monitor 131.
- step S02 the module switching unit 202 confirms whether or not the environment construction button A2 is clicked.
- step S02 If it is determined in step S02 that the environment construction button A2 has been clicked, the programming support apparatus 100 executes step S03.
- step S ⁇ b> 03 the environment construction module 300 constructs environment model data for operation simulation of the robot 2. Specific processing contents will be described later.
- step S02 If it is determined in step S02 that the environment construction button A2 has not been clicked, the programming support apparatus 100 executes step S04.
- step S04 the module switching unit 202 confirms whether or not the planning button A3 has been clicked.
- step S04 the programming support apparatus 100 executes steps S05 and S06.
- step S05 the condition setting module 400 executes processing for setting programming support conditions including the first constraint condition and the second constraint condition.
- step S06 the programming module 500 executes programming support for the operation program in accordance with the programming support conditions set by the condition setting module 400. For example, the programming module 500 generates an operation program according to the programming support conditions. Details of these processes will be described later.
- step S04 If it is determined in step S04 that the planning button A3 has not been clicked, the programming support apparatus 100 executes step S07.
- step S07 the module switching unit 202 confirms whether or not the simulation button A4 has been clicked.
- step S07 If it is determined in step S07 that the simulation button A4 has been clicked, the programming support apparatus 100 executes step S08. In step S08, an operation simulation of the robot 2 is executed. Specific processing contents will be described later.
- step S09 the module switching unit 202 confirms whether or not the end button A5 has been clicked.
- step S09 If it is determined in step S09 that the end button A5 has not been clicked, the programming support apparatus 100 returns the process to step S02. Thereafter, until the end button A5 is clicked, processing corresponding to the click of the environment construction button A2, the planning button A3, or the simulation button A4 is repeated.
- step S09 If it is determined in step S09 that the end button A5 has been clicked, the programming support apparatus 100 closes the main screen A1 and ends the process.
- step S03 the programming support apparatus 100 first executes step S11.
- step S ⁇ b> 11 the screen data generation unit 301 generates display data for the environment construction screen B ⁇ b> 1 and outputs it to the monitor 131.
- step S12 the update unit 302 confirms whether the model addition button B3 has been clicked.
- step S13 the model adding unit 303 refers to the model data storage unit 113 to generate a model data list, and using the list, the update unit 302 generates display data for the model selection screen C1, and selects the model.
- the display data of the environment construction screen B1 is updated so as to display the screen C1.
- step S14 the model adding unit 303 waits for a model data selection input on the model selection screen C1.
- step S15 the model addition unit 303 acquires the model data selected on the model selection screen C1 from the model data storage unit 113 and adds it to the environment model data in the environment data storage unit 111.
- step S16 the drawing data generation unit 304 generates simulation environment drawing data using the environment model data stored in the environment data storage unit 111, and outputs the drawing data to the update unit 302 as display data for the simulation environment area B2. .
- step S17 the update unit 302 updates the display data in the simulation environment area B2 with the data output from the drawing data generation unit 304.
- step S12 If it is determined in step S12 that the model addition button B3 has not been clicked, the programming support apparatus 100 executes step S18.
- step S18 the model adding unit 303 confirms whether or not at least one model data has been added to the environmental model data.
- step S18 If it is determined in step S18 that there is already added model data in the environmental model data, the programming support apparatus 100 executes step S19.
- step S19 the update unit 302 confirms whether or not the attribute setting button B4 has been clicked.
- step S19 If it is determined in step S19 that the attribute setting button B4 has been clicked, the programming support apparatus 100 executes step S20.
- step S20 the attribute data registration unit 305 registers the attribute data of the input target model. Specific processing contents will be described later.
- step S19 If it is determined in step S19 that the attribute setting button B4 has not been clicked, the programming support apparatus 100 executes step S21.
- step S21 the model adding unit 303 confirms whether or not the state setting button B5 is clicked.
- step S21 If it is determined in step S21 that the state setting button B5 has been clicked, the programming support apparatus 100 executes step S22.
- step S22 the state data registration unit 306 registers state data of the input target model. Specific processing contents will be described later.
- Step S23 the programming support apparatus 100 executes Step S23. If it is determined in step S21 that the state setting button B5 has not been clicked, and if it is determined in step S18 that there is no additional model data in the environmental model data, the programming support apparatus 100 executes step S23. . In step S23, the updating unit 302 confirms whether or not the end button B6 has been clicked.
- step S23 If it is determined in step S23 that the end button B6 has not been clicked, the programming support apparatus 100 returns the process to step S12. Thereafter, the environmental model data construction process is repeated until the end button B6 is clicked.
- step S23 If it is determined in step S23 that the end button B6 has been clicked, the programming support apparatus 100 closes the environment construction screen B1 and ends the process.
- step S31 the update unit 302 adds to the display data of the environment construction screen B1 so as to display the attribute input screen D1.
- step S32 the update unit 302 determines whether or not information is input to the attribute input screen D1.
- step S32 If it is determined in step S32 that there is information input to the attribute input screen D1, the programming support apparatus 100 executes step S33.
- step S33 the update unit 302 updates the display data on the attribute input screen D1 to reflect the input content.
- Step S34 the programming support apparatus 100 executes Step S34. If it is determined in step S32 that there is no information input on the attribute input screen D1, the programming support apparatus 100 executes step S34 without executing step S33. In step S34, the updating unit 302 confirms whether or not the registration button D5 has been clicked.
- step S34 If it is determined in step S34 that the registration button D5 has not been clicked, the programming support apparatus 100 returns the process to step S32. Thereafter, until the registration button D5 is clicked, updating of the display data on the attribute input screen D1 corresponding to the input of the attribute data is repeated.
- step S34 If it is determined in step S34 that the registration button D5 has been clicked, the programming support apparatus 100 executes step S35.
- step S35 the attribute data registration unit 305 acquires the data input on the attribute input screen D1, and writes it in the environment data storage unit 111 in association with the input target model. This completes the attribute data registration procedure.
- step S41 the update unit 302 adds to the display data of the environment construction screen B1 so as to display the state input screen F1.
- step S42 the update unit 302 determines whether or not information has been input to the state input screen F1.
- step S42 If it is determined in step S42 that there is information input to the state input screen F1, the programming support apparatus 100 executes step S43.
- step S43 the update unit 302 updates the display data on the state input screen F1 to reflect the input content.
- Step S44 the programming support apparatus 100 executes Step S44. If it is determined in step S42 that there is no information input on the state input screen F1, the programming support apparatus 100 executes step S44 without executing step S43. In step S44, the updating unit 302 confirms whether or not the registration button F4 has been clicked.
- step S44 If it is determined in step S44 that the registration button F4 has not been clicked, the programming support apparatus 100 returns the process to step S42. Thereafter, until the registration button F4 is clicked, the update of the display data on the state input screen F1 according to the input of the state data is repeated.
- step S45 the state data registration unit 306 acquires the data input on the state input screen F1, and writes it in the environment data storage unit 111 in association with the input target model. The status data registration procedure is thus completed.
- step S51 the list generation unit 405 generates a list of work jobs to be displayed in the list display area G2, and outputs the list to the screen data generation unit 401.
- step S52 the constraint menu generation unit 406 generates a list of constraint conditions for display in the constraint menu display area G32 and outputs the list to the screen data generation unit 401.
- step S53 the programming support apparatus 100 executes Step S53.
- step S ⁇ b> 53 the screen data generation unit 401 generates display data for the planning screen G ⁇ b> 1 and outputs it to the monitor 131.
- processing for setting programming support conditions is started in response to an input operation on the planning screen G1, and is continued until the planning button G37 is clicked (step S54).
- the planning button G37 is clicked, the programming support condition setting procedure is completed.
- the programming support condition setting procedure will be described by dividing it into a first constraint condition setting procedure, a second constraint condition setting procedure, and an operation level setting procedure.
- step S61 the first updating unit 402 waits for a work job selection input (for example, a click on the list element G3) in the list display area G2.
- a work job selection input for example, a click on the list element G3
- Step S62 the condition reading unit 411 determines whether or not the first constraint condition for the work job selected in the list display area G2 (hereinafter referred to as “selected job”) is stored in the individual condition storage unit 420. Check.
- step S62 If it is determined in step S62 that the first constraint condition of the selected job is stored in the individual condition storage unit 420, the programming support apparatus 100 executes step S63.
- step S ⁇ b> 63 the condition reading unit 411 reads the first constraint condition stored in the individual condition storage unit 420.
- Step S64 the programming support apparatus 100 executes Step S64. If it is determined in step S62 that the first constraint condition of the selected job is not stored in the individual condition storage unit 420, the programming support apparatus 100 executes step S64 without executing step S63.
- the first update unit 402 updates the display data in the first input area G9 so that the first constraint condition of the selected job can be input.
- the first update unit 402 displays the information in the input portion of the item for the item with the information read from the individual condition storage unit 420 in step S63, and inputs the input for the other items.
- the display data in the first input area G9 is updated so that the part is blank.
- Step S65 the programming support apparatus 100 executes Step S65.
- the first updating unit 402 confirms whether or not there is an input for adding the first constraint condition. If it is determined in step S65 that there is an input for adding the first constraint condition, the programming support apparatus 100 executes step S66.
- Step S66 includes a process of setting the first constraint condition based on the input content to the first input area G9. Specific processing contents will be described later.
- Step S67 the programming support apparatus 100 executes Step S67. If it is determined in step S65 that there is no input for adding the first constraint condition, the programming support apparatus 100 executes step S67 without executing step S66. In step S67, the condition registration unit 419 confirms whether or not the condition registration button G36 has been clicked.
- step S67 If it is determined in step S67 that the condition registration button G36 has not been clicked, the programming support apparatus 100 executes step S68.
- step S68 the first update unit 402 confirms whether another work job is selected in the list display area G2.
- step S68 If it is determined in step S68 that no other job is selected, the programming support apparatus 100 returns the process to step S65. Thereafter, until the condition registration button G36 is clicked or another work job is selected in the list display area G2, the first constraint condition of the selected job is set based on the input to the first input area G9. Is repeated.
- step S68 If it is determined in step S68 that another selected job has been selected, the programming support apparatus 100 returns the process to step S62, and starts the first constraint condition setting process for the newly selected work job.
- step S69 the condition registration unit 419 writes the setting result of the first constraint condition in the first input area G9 in the individual condition storage unit 420. This completes the procedure for setting the first constraint condition.
- step S66 the condition setting procedure in step S66 will be described.
- the programming support apparatus 100 first executes step S81.
- the first updating unit 402 confirms whether or not the item designation button G11 in the work content input area G10 has been clicked.
- step S81 If it is determined in step S81 that the item designation button G11 has been clicked, the programming support apparatus 100 executes step S82.
- step S82 the first updating unit 402 displays the icon of the work content information (for example, work object) that is an option for the item according to the item designation button G11 in the icon selection area G12. Update the display data.
- work content information for example, work object
- step S83 the first update unit 402 waits for an icon selection input in the icon selection area G12.
- Step S84 the first update unit 402 updates the display data in the first input area G9 so that the icon selected in the icon selection area G12 is displayed in the input content display area G13.
- step S81 If it is determined in step S81 that the item designation button G11 has not been clicked, the programming support apparatus 100 executes step S85.
- step S85 the presence / absence of text input to the name input area G15 of the work content input area G10 is determined.
- step S85 If it is determined in step S85 that there is a text input to the name input area G15, the programming support apparatus 100 executes step S86.
- step S86 the first update unit 402 updates the display data in the first input area G9 so that the input content is displayed in the name input area G15.
- step S85 If it is determined in step S85 that there is no text input in the name input area G15, the programming support apparatus 100 executes step S87.
- step S87 the first updating unit 402 confirms whether or not the new creation button G18 is clicked in the condition input unit G17 of the constraint condition input area G16.
- Step S88 includes a process of creating a condition to be set as the first constraint condition. Specific processing contents will be described later.
- Step S89 the first condition setting unit 412 sets the first constraint condition according to the input to the first input area G9, and temporarily associates it with the identification information of the work job targeted by the first constraint condition. Write to the condition buffer 415 for storage. Thus, step S66 is completed.
- step S87 If it is determined in step S87 that the new creation button G18 has not been clicked, the programming support apparatus 100 completes step S66 without executing step S89.
- step S91 the option information acquisition unit 410 acquires first option information for specifying an object included in the environmental model data from the environmental data storage unit 111.
- the first input support unit 408 sets work object options based on the first option information, and generates display data for the options.
- step S92 the first updating unit 402 updates the display data in the first input area G9 so as to display the condition creation screen H1.
- the first updating unit 402 uses the data generated by the first input support unit 408 to set the work object option in the input box H2.
- step S93 the first updating unit 402 waits for a work object selection input in the input box H2.
- Step S94 the option information acquisition unit 410 acquires second option information indicating the state of the work object input in the input box H2 from the environment data storage unit 111.
- the second input support unit 409 sets a state designation condition option based on the second option information, and generates display data for the option.
- the first update unit 402 uses the data generated by the second input support unit 409 to set the state specification condition options in the input box H4.
- step S95 the first updating unit 402 confirms whether or not there is an input to the input box H3 or the input box H4.
- step S95 If it is determined in step S95 that there is an input to the input box H3 or the input box H4, the programming support apparatus 100 executes step S96.
- step S96 the first update unit 402 updates the display data in the first input area G9 so that the input content is reflected on the condition creation screen H1.
- step S97 the first updating unit 402 confirms whether or not the creation button H5 has been clicked.
- step S97 If it is determined in step S97 that the creation button H5 has not been clicked, the programming support apparatus 100 returns the process to step S95. Thereafter, until the creation button H5 is clicked, the update of the display contents of the condition creation screen H1 according to the input to the input box H3 or the input box H4 is repeated.
- step S98 the first update unit 402 creates a condition according to the data input on the condition creation screen H1.
- step S99 the first update unit 402 updates display data in the first input area G9 so that the condition created in step S98 is displayed on the display unit G19.
- step S88 is completed.
- step S101 the second update unit 403 checks whether there is an input for adding a work job to the second input area G20. For example, the second update unit 403 checks whether or not the list element G3 is dragged from the list display area G2 to the second input area G20.
- step S101 If it is determined in step S101 that the list element G3 has been dragged from the list display area G2 to the second input area G20, the programming support apparatus 100 executes step S103.
- step S103 the temporary flow generation unit 416 generates temporary flows G23 for a plurality of work jobs displayed in the second input area G20.
- the temporary flow generation unit 416 sets the execution order of work jobs according to the relationship between the existing flow element G24 and the drag completion position in the second input area G20, and generates the temporary flow G23 according to this.
- Step S104 the programming support apparatus 100 executes Step S104.
- the second update unit 403 displays the temporary flow G23 generated in step S103, and displays the second input area G20 so that the second constraint condition can be input between work jobs in the temporary flow G23. Update data.
- step S101 If it is determined in step S101 that there is no input for adding a work job to the second input area G20, the programming support apparatus 100 executes step S105.
- step S105 the second update unit 403 checks whether two or more work jobs are displayed in the second input area G20.
- step S105 If it is determined in step S105 that two or more work jobs are displayed in the second input area G20, the programming support apparatus 100 executes step S106.
- step S106 the second update unit 403 checks whether there is an input for adding a constraint condition to the second input area G20.
- step S107 the programming support apparatus 100 executes step S107.
- the second update unit 403 updates the display data in the second input area G20 so that the addition of the constraint condition is reflected in the display of the temporary flow G23. For example, when the menu element G33 is dragged from the restricted menu display area G32 to the second input area G20 and the dragging is completed between the two flow elements G24, the second update unit 403, between the two flow elements G24. The display data in the second input area G20 is updated so that the constraint condition of the menu element G33 is inserted.
- step S108 the second condition setting unit 417 sets the second constraint condition based on the constraint condition input between work jobs in the second input area G20.
- Step S109 the programming support apparatus 100 executes Step S109. If it is determined in step S105 that two or more work jobs are not displayed in the second input area G20, or if it is determined in step S106 that there is no input for adding a constraint condition, the programming support apparatus 100 performs step S104. , S108 is executed without executing S108. In step S109, the condition registration unit 419 confirms whether or not the condition registration button G36 has been clicked.
- step S109 If it is determined in step S109 that the condition registration button G36 has not been clicked, the programming support apparatus 100 returns the process to step S101. Thereafter, until the condition registration button G36 is clicked, the process of setting the second constraint condition based on the input to the second input area G20 is repeated.
- step S110 the condition registration unit 419 writes the second constraint condition set by the second condition setting unit 417 in the inter-job condition storage unit 422 in association with the work job that is the target of the second constraint condition.
- the condition registration unit 419 writes a plurality of work jobs respectively corresponding to the plurality of flow elements G24 of the temporary flow G23 in the execution target storage unit 421 as execution target jobs. This completes the procedure for setting the second constraint condition.
- step S121 the programming support apparatus 100 first executes step S121.
- step S121 the third update unit 404 confirms whether or not a calculation level is input to the third input area G34.
- step S122 the third updating unit 404 updates the display data in the third input area G34 so as to reflect the input content in the third input area G34.
- the third update unit 404 updates the display data so as to turn on the radio button G35 clicked in the third input area G34.
- step S123 the calculation level setting unit 418 sets the calculation level according to the input to the third input area G34.
- Step S124 the programming support apparatus 100 executes Step S124. If it is determined in step S121 that the calculation level is not input to the third input area G34, the programming support apparatus 100 executes step S124 without executing steps S122 and S123. In step S124, the condition registration unit 419 confirms whether or not the condition registration button G36 has been clicked.
- step S124 If it is determined in step S124 that the condition registration button G36 has not been clicked, the programming support apparatus 100 returns the process to step S121. Thereafter, until the condition registration button G36 is clicked, the process of setting the calculation level based on the input to the third input area G34 is repeated.
- step S124 If it is determined in step S124 that the condition registration button G36 has been clicked, the programming support apparatus 100 executes step S125.
- step S125 the condition registration unit 419 writes the calculation level set by the calculation level setting unit 418 in the calculation condition storage unit 423. This completes the calculation level setting procedure.
- step S131 the flow control unit 503 waits for the planning button G37 to be clicked.
- Step S132 the programming support apparatus 100 executes Step S132.
- the planning support unit 501 generates an execution flow that satisfies the first constraint condition and the second constraint condition.
- Step S134 the programming support apparatus 100 executes Step S134.
- the bridging job generation unit 506 executes the execution flow stored in the flow buffer 508, the first path information acquired by the path information acquisition unit 505, and the environment model data stored in the environment data storage unit 111. Based on the second path information, second path information that defines the motion path of the robot 2 between work jobs is generated.
- step S135 the flow evaluation unit 507 evaluates the execution flow, the first path information, and the second path information based on evaluation conditions different from the first constraint condition and the second constraint condition. For example, the flow evaluation unit 507 derives evaluation values (for example, the execution time or power consumption) of the execution flow, the first path information, and the second path information based on the evaluation conditions.
- evaluation values for example, the execution time or power consumption
- step S136 the flow evaluation unit 507 determines whether or not the execution flow can be adopted. For example, the flow evaluation unit 507 makes it possible to adopt the execution flow when the evaluation value has reached the pass line, and makes the execution flow unusable when the evaluation value has not reached the pass line.
- step S136 If it is determined in step S136 that the execution flow cannot be adopted, the programming support apparatus 100 returns the process to step S132. Thereafter, the generation of the execution flow and the calculation of the evaluation value are repeated until the execution flow can be adopted.
- step S136 When it is determined in step S136 that the evaluation value can be adopted, the programming support apparatus 100 executes step S137.
- step S137 the update unit 502 updates the display data in the first input area G9 so that the execution flow that can be adopted is displayed on the result output unit G29.
- step S138 the program generation unit 510 generates an operation program for the robot 2 based on the execution flow generated in steps S131 to S136.
- step S139 the program registration unit 511 checks whether or not the save button G38 has been clicked.
- step S140 the flow adjustment unit 503 checks whether or not the planning button G37 has been clicked again.
- step S140 If it is determined in step S140 that the planning button G37 has not been clicked again, the programming support apparatus 100 returns the process to step S139.
- step S140 If it is determined in step S140 that the planning button G37 has been clicked again, the programming support apparatus 100 returns the process to step S132. Thereby, the generation of the operation program is executed again.
- step S141 the program registration unit 511 writes the operation program generated in step S138 in the operation program storage unit 112. The operation program generation procedure is thus completed.
- step S132 a procedure for generating an execution flow that satisfies the first constraint condition and the second constraint condition will be specifically illustrated.
- the flow control unit 503 generates an execution flow so as to satisfy the timing condition.
- the flow control unit 503 groups a plurality of execution target work jobs according to timing conditions. Specifically, for each timing condition, all work jobs related to the timing condition are grouped in a state satisfying the timing condition. Work jobs that are not related to any timing condition constitute a single group. As a result of grouping, if a plurality of work jobs to be executed include only one group, there is only one execution flow that satisfies the timing condition.
- the flow adjustment unit 503 generates an execution flow by randomly arranging the plurality of groups.
- step S202 the determination unit 504 selects a work job to be checked for the first constraint condition.
- step S ⁇ b> 203 the determination unit 504 determines an environmental state at the execution timing of the work job to be confirmed based on the execution order of the work jobs positioned before the work job to be confirmed in the execution flow. For example, when job 02 (FIGS. 32 to 34) is a confirmation target in the work flow, the determination unit 504 determines that job 01 is positioned before job 02 and job 03 is positioned after job 02. It is determined that the lid 12 is open at the execution timing.
- step S204 the determination unit 504 confirms whether the environmental state determined in step S203 satisfies the first constraint condition.
- step S205 the flow adjustment unit 503 adjusts the execution flow so as to satisfy the timing condition. For example, the flow adjustment unit 503 changes the order among the plurality of groups grouped based on the timing condition. Thereafter, the programming support apparatus 100 returns the process to step S202.
- step S204 when it is determined that the execution environment satisfies the first constraint condition, the programming support apparatus 100 executes step S206.
- step S ⁇ b> 206 the determination unit 504 confirms whether confirmation of the first constraint condition is completed for all work jobs in the execution flow.
- step S206 If it is determined in step S206 that an unconfirmed work job remains, the programming support apparatus 100 executes step S207.
- step S207 the determination unit 504 selects one of unconfirmed work jobs. Thereafter, the programming support apparatus 100 returns the process to step S202. Thereafter, the programming support apparatus 100 repeats steps S202 to S207 until it is determined that all work jobs satisfy the environmental conditions.
- step S206 If it is determined in step S206 that the first constraint condition has been confirmed for all work jobs, the programming support apparatus 100 completes the execution flow generation process.
- step S ⁇ b> 151 the screen data generation unit 601 generates display data for the simulation screen K ⁇ b> 1 and outputs it to the monitor 131.
- Step S152 the update unit 602 confirms whether or not the program selection button K3 has been clicked.
- step S152 If it is determined in step S152 that the program selection button K3 has been clicked, the programming support apparatus 100 executes step S153.
- step S153 the program setting unit 603 refers to the operation program storage unit 112 and generates a list of operation programs.
- the update unit 602 updates the display data on the environment construction screen B1 so as to display the program selection screen L1 including the list in the list display area L2.
- step S154 the program setting unit 603 waits for an operation program selection input on the program selection screen L1.
- step S155 the program setting unit 603 sets the operation program selected on the program selection screen L1 as the operation program to be simulated.
- step S152 If it is determined in step S152 that the program selection button K3 has not been clicked, the programming support apparatus 100 executes step S156.
- step S156 the simulation execution unit 604 confirms whether the operation program to be simulated has been set.
- step S156 When it is determined in step S156 that the operation program to be simulated has been set, the programming support apparatus 100 executes step S157.
- step S157 the update unit 602 confirms whether or not the simulation execution button K4 has been clicked.
- step S158 the simulation execution unit 604 operates the model of the robot 2 according to the simulation target operation program under the simulation environment specified by the environment model data stored in the environment data storage unit 111.
- step S159 the moving image data generation unit 605 generates moving image data of the model of the robot 2 according to the simulation result by the simulation execution unit 604.
- the update unit 602 updates the display data in the drawing area K2 so that the moving image data is displayed in the list display area L2.
- step S160 the programming support apparatus 100 executes step S160. If it is determined in step S156 that the operation program to be simulated is not set, and if it is determined in step S15 that the simulation execution button K4 is not clicked, the programming support apparatus 100 executes step S160. In step S160, the updating unit 602 checks whether or not the end button K5 has been clicked.
- step S160 If it is determined in step S160 that the end button K5 has not been clicked, the programming support apparatus 100 returns the process to step S152.
- step S160 If it is determined in step S160 that the end button K5 has been clicked, the programming support apparatus 100 closes the simulation screen K1 and ends the process.
- the programming support apparatus 100 sets the operation environment of the robot 2 for any one of the plurality of work jobs and the work job storage unit 114 that stores a plurality of work jobs that define the operation pattern of the robot 2.
- a first condition setting unit 412 that sets specified environmental conditions in response to an input to the user interface 130, and among the plurality of work jobs, a plurality of work jobs to be executed by the robot 2 are sent to the user interface 130.
- the execution flow that determines the execution order of the plurality of execution target work jobs set by the second condition setting unit 417 and the second condition setting unit 417 set in response to the input of at least one work job is an environmental condition
- a planning support unit 501 that determines whether or not the above condition is satisfied based on the execution order.
- Environmental conditions that are constraints on execution for each work job tend to have higher universality than constraints on the relationship between work jobs.
- the environmental condition can be applied to the work job regardless of the operation program configured to include the work job, while the constraint condition on the relationship between the work jobs can be specific to each operation program. For this reason, by making it possible to set the condition for the execution flow of the work job as an environmental condition, it becomes easy to divert the registered contents. In other words, at least some of the conditions can be reusable data. Therefore, it is easy to make use of the registered operation program at the time of programming, which is effective in reducing the burden of operation programming.
- the planning support unit 501 specifies the environmental state at the execution timing of any one work job in the execution flow based on the operation content of the robot 2 in the other work job of the execution flow and the execution order of the execution flow. Then, it may be determined whether or not the environmental state satisfies the environmental condition of the one work job. In this case, it is possible to easily determine whether at least one work job satisfies the environmental condition in the execution flow by comparing the environmental condition that can be specified by the execution order with the environmental condition.
- the planning support unit 501 specifies the environmental state at the execution timing of the second work job based on at least the operation content of the robot in the first work job. It may be determined whether the environmental state satisfies the environmental condition of the second work job. In this case, it can be more easily determined whether or not the work job satisfies the environmental condition.
- the planning support unit 501 at least at the execution timing of the second work job based on the operation content of the robot in the first work job.
- the environmental state is identified, the environmental state is updated based on at least the operation content of the robot in the second work job, the environmental state at the execution timing of the third work job is identified, and the environmental state is the environment of the third work job. It may be determined whether the condition is satisfied. In this case, it is possible to more easily determine whether the work job satisfies the environmental condition by sequentially updating the environmental state according to the operation content of the robot 2 corresponding to the work jobs arranged in order.
- the support unit 501 specifies the state of the work target after the robot has operated according to the first work job as the environmental state at the execution timing of the second work job, and the environmental state satisfies the environmental condition of the second work job. It may be determined whether or not. In this case, it can be more easily determined whether or not the work job satisfies the environmental condition.
- the planning support unit 501 determines that one work job satisfies the environmental condition based on the environmental condition of any one work job in the execution flow and the operation content of the robot 2 in the other work job of the execution flow. Therefore, an order condition required between the one work job and the other work job may be generated, and it may be determined whether or not the execution order of the execution flow satisfies the order condition. In this case, it is possible to easily determine whether the work job satisfies the environmental condition by replacing the environmental condition with the order condition.
- the planning support unit 501 has a relationship between the state of the work object after the robot operates according to the first work job and the state of the work object specified by the environmental condition of the second work job. Based on this, an order condition between the first work job and the second work job may be generated. In this case, it can be more easily determined whether or not the work job satisfies the environmental condition.
- the second condition setting unit 417 is configured to further set a timing condition for designating a relationship of execution timing between at least two work jobs to be executed based on an input to the user interface 130, and supports planning
- the unit 501 may determine whether or not at least one work job satisfies the environmental condition in the execution flow in which the execution order is determined so as to satisfy the timing condition, based on the execution order. In this case, usability can be improved by a flexible user interface that allows not only input of environmental conditions but also input of timing conditions. Further, when at least a part of the environmental conditions is input as the timing condition, the calculation load in determining whether or not the environmental condition is satisfied is reduced.
- the programming support apparatus 100 displays on the user interface 130 a planning screen G1 including a first input area G9 for inputting environmental conditions and a second input area G20 for selecting a plurality of work jobs to be executed.
- a screen data generation unit 401 that generates data to be generated may be further provided. In this case, it becomes easier to distinguish between a portion where the registered contents can be used and a portion where a new condition needs to be set.
- the programming support apparatus 100 updates the display data in the first input area G9 according to the input to the user interface 130, and displays the second input area G20 according to the input to the user interface 130.
- a second updating unit 403 that updates the business data.
- the screen data generation unit 401 may generate display data for the planning screen G1 further including a list display area G2 indicating a list of a plurality of work jobs.
- the first update unit 402 updates the display data in the first input area G9 so that the environmental condition of the work job selected in the list display area G2 can be input, and the second update unit 403
- the data for the second input area G20 may be updated so that a plurality of work jobs selected in G2 can be displayed and timing conditions between the plurality of work jobs can be input. In this case, both the selection of a work job to be input with environmental conditions and the selection of a work job to be input with timing conditions become easy.
- the programming support apparatus 100 may further include a temporary flow generation unit 416 that generates temporary flows of a plurality of work jobs displayed in the second input area G20.
- the second update unit 403 may display the temporary flow and update the display data in the second input area G20 so that the timing condition can be input between work jobs in the temporary flow.
- the second constraint condition can be input by an intuitive operation procedure for designating a portion that cannot be changed. For this reason, it becomes easier for the operator to input the second constraint condition.
- the environmental condition may include a state specifying condition for specifying the state of the work object of the work job.
- the first condition setting unit 412 has a target setting unit 413 that sets a work target based on an input to the first input area G9, and a state that sets a state designation condition based on an input to the first input area G9. And a setting unit 414.
- the first constraint condition can be set by inputting the work object and the state designation condition that are unlikely to be confused by the operator's judgment, the operator can more easily input the first constraint condition.
- the programming support apparatus 100 sets options for the work object, generates the data for displaying the options, and the state designation condition according to the work object to be designated for the state. You may further provide the 2nd input support part 409 which sets the option and produces
- the programming support apparatus 100 includes first option information for specifying an object included in the environmental model data, and a second option indicating the state of the object, from the environment data storage unit 111 that stores environment model data for operation simulation of the robot 2. You may further provide the option information acquisition part 410 which acquires option information.
- the first input support unit 408 may set work object options based on the first option information.
- the second input support unit 409 may set options for the state designation condition based on the second option information. In this case, setting the options using the environmental model data makes it easier for the operator to input the first constraint condition.
- the screen data generation unit 401 may generate display data for the planning screen G1 so that the list display area G2 is arranged between the first input area G9 and the second input area G20.
- the list display area G2 that is shared by the selection of the work job that is the input target of the environmental condition and the selection of the work job that is the input target of the timing condition is set between the first input area G9 and the second input area G20.
- the programming support apparatus 100 may further include a condition registration unit 419 that registers at least an environmental condition in the condition storage unit in association with a work job, and a condition reading unit 411 that reads the environmental condition from the condition storage unit. In this case, by making it possible to read the registered restriction conditions, it becomes easier to utilize the registered operation program.
- the planning support unit 501 determines whether or not at least one work job satisfies the environmental condition in the execution flow based on the execution order of the execution flow, and any of the work jobs in the execution flow is the environment When it is determined that the condition is not satisfied, the flow adjustment unit 503 that changes the execution order so that the timing condition is satisfied, and the execution flow is evaluated based on an evaluation condition different from the environmental condition and the timing condition, and the evaluation result And a flow evaluation unit 507 for determining whether or not the execution flow can be adopted. In this case, a more reliable programming support is possible by adding an evaluation process based on an evaluation condition different from the constraint condition.
- the planning support unit 501 further includes a connection job generation unit 506 that generates a connection job that defines the operation pattern of the robot 2 between work jobs based on the execution flow and the environment model data for the operation simulation of the robot 2. Then, the flow evaluation unit 507 may evaluate the execution flow, the plurality of work jobs to be executed, and at least one connection job based on the evaluation condition, and determine whether or not the execution flow can be adopted based on the evaluation result. In this case, since it is determined whether or not the execution flow can be adopted in consideration of the operation pattern of the robot between work jobs, more reliable programming support is possible.
- a calculation level setting unit 418 that sets a calculation level for adjusting a criterion for determining whether or not to adopt the execution flow according to an input to the user interface 130 may be further provided. In this case, the balance between the speed and reliability of programming support can be adjusted according to user needs.
- the programming support apparatus 100 may include at least the condition setting module 400 and the programming module 500, and may not include the main module 200, the environment construction module 300, and the simulation module 600.
- a first condition setting unit that sets a first constraint condition, which is a constraint condition for execution for each work job, according to an input to the user interface
- a second condition setting unit that sets a second constraint condition, which is a constraint condition regarding the relationship between the work jobs, according to an input to the user interface
- a programming support apparatus comprising: a planning support unit that checks execution timing of at least one of the work jobs based on the first constraint condition and the second constraint condition.
- (Appendix 2) A screen data generation unit that generates data for displaying an input screen including a first input area for inputting the first constraint condition and a second input area for inputting the second constraint condition on the user interface
- the programming support device further comprising: (Appendix 3) A first update unit for updating display data in the first input area in response to an input to the user interface; A second updating unit that updates display data in the second input area in response to an input to the user interface,
- the screen data generation unit generates display data for the input screen further including a list display area indicating a list of the plurality of work jobs;
- the first update unit updates display data in the first input area so that the first constraint condition of the work job selected in the list display area can be input,
- the second update unit displays the second input area so that the plurality of work jobs selected in the list display area can be displayed and the second constraint condition between the plurality of work jobs can be input.
- the programming support apparatus which updates data for use.
- a temporary flow generation unit that generates temporary flows of the plurality of work jobs displayed in the second input area;
- the second update unit displays the temporary flow and updates display data in the second input area so that the second constraint condition can be input between the work jobs in the temporary flow.
- the programming support apparatus described. (Appendix 5)
- the first constraint condition includes a state designation condition for designating a state of a work object of the work job,
- the first condition setting unit includes: An object setting unit for setting the work object based on an input to the first input area;
- the programming support apparatus according to appendix 3 or 4, further comprising: a state setting unit that sets the state designation condition based on an input to the first input area.
- (Appendix 6) A first input support unit for setting options for the work object and generating data for displaying the options;
- Support device (Appendix 7) Option information for acquiring first option information for specifying an object included in the environment data and second option information indicating the state of the object from an environment data storage unit for storing environment data for simulation of the robot operation An acquisition unit;
- the first input support unit sets options for the work object based on the first option information
- Appendix 8 The programming support device according to appendix 7, wherein the screen data generation unit generates display data for the input screen such that the list display area is arranged between the first input area and the second input area.
- Appendix 9 A condition registration unit for registering at least one of the first constraint condition and the second constraint condition in a condition storage unit;
- Appendix 10 The programming support apparatus according to any one of appendices 1 to 9, wherein the planning support unit further executes generating an execution flow of the plurality of work jobs based on the execution timing check result.
- (Appendix 11) A path information acquisition unit that acquires first path information that defines an operation path of the robot for at least one of the work jobs;
- the planning support unit A timing check unit that checks execution timing of at least one of the work jobs based on the first constraint condition and the second constraint condition;
- a flow generation unit that generates the execution flow so as to satisfy the first constraint condition and the second constraint condition based on the execution timing check result;
- a flow evaluation unit that evaluates the execution flow and the first path information based on an evaluation condition different from the first constraint condition and the second constraint condition, and determines whether or not the execution flow can be adopted based on an evaluation result;
- the programming support device according to appendix 10, wherein: (Appendix 12)
- the planning support unit A path generation unit configured to generate second path information that defines an operation path of the robot between the work jobs based on the execution flow, the first path information, and environment data for simulation of the operation of the robot;
- the flow evaluation unit evaluates the execution flow, the first path information, and
- Programming support device The programming support apparatus according to appendix 11 or 12, further comprising a calculation level setting unit that sets a calculation level for adjusting a criterion for determining whether or not the execution flow can be adopted according to an input to a user interface.
- Appendix 14 The programming support apparatus according to any one of appendices 10 to 13, further comprising a program generation unit that generates an operation program of the robot based on the execution flow generated by the planning support unit.
- Appendix 15 The programming support apparatus according to appendix 14, and The robot; And a controller that controls the robot according to the operation program generated by the program generation unit.
- Appendix 16 A method executed by a programming support device, For a plurality of work jobs to be executed by the robot, setting a first constraint condition that is a constraint condition for execution for each work job according to an input to the user interface; Setting a second constraint that is a constraint on the relationship between the work jobs according to an input to the user interface; Checking the execution timing of at least one work job based on the first constraint condition and the second constraint condition.
- a program generation method executed by a programming support device For a plurality of work jobs to be executed by the robot, setting a first constraint condition that is a constraint condition for execution for each work job according to an input to the user interface; Setting a second constraint that is a constraint on the relationship between the work jobs according to an input to the user interface; Obtaining at least one work job first path information defining an operation path of the robot; Checking execution timing of at least one of the work jobs based on the first constraint condition and the second constraint condition; Generating an execution flow of the plurality of work jobs so as to satisfy the first constraint condition and the second constraint condition based on the execution timing check result; Generating a program for operating the robot based on the execution flow.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
プログラミング支援装置100は、ロボット2の動作パターンを規定する複数の作業ジョブを記憶する作業ジョブ記憶部114と、複数の作業ジョブのいずれかについて、ロボット2の動作環境を指定する環境条件を、ユーザインタフェース130への入力に応じて設定する第一条件設定部412と、複数の作業ジョブのうち、ロボット2に実行させる複数の実行対象の作業ジョブを、ユーザインタフェース130への入力に応じて設定する第二条件設定部417と、第二条件設定部417により設定された複数の実行対象の作業ジョブの実行順序を定めた実行フローにおいて、少なくとも一つの作業ジョブが環境条件を満たすか否かを、当該実行順序に基づいて判定するプランニング支援部501と、を備える。
Description
本開示は、プログラミング支援装置、ロボットシステム、プログラミング支援方法及びプログラム生成方法に関する。
実行主体を複数含むアクションを実行主体ごとに複数のアクションに分割する分割部と、分割部によって分割されたアクションを含む複数のアクション間の依存関係をあらわす依存情報に基づき、複数のアクションのうち実行主体が一致する複数のアクションの少なくとも一つの開始タイミングを調整する調整部と、を備える作業計画装置が開示されている。
本開示は、ロボットの動作プログラミングの負担軽減に有効なプログラミング支援装置、ロボットシステム、プログラミング支援方法及びプログラム生成方法を提供することを目的とする。
本開示の一側面に係るプログラミング支援装置は、ロボットの動作パターンを規定する複数の作業ジョブを記憶するジョブ記憶部と、複数の作業ジョブのいずれかについて、ロボットの動作環境を指定する環境条件を、ユーザインタフェースへの入力に応じて設定する第一条件設定部と、複数の作業ジョブのうち、ロボットに実行させる複数の実行対象の作業ジョブを、ユーザインタフェースへの入力に応じて設定する第二条件設定部と、第二条件設定部により設定された複数の実行対象の作業ジョブの実行順序を定めた実行フローにおいて、少なくとも一つの作業ジョブが環境条件を満たすか否かを、当該実行順序に基づいて判定するプランニング支援部と、を備える。
本開示によれば、ロボットの動作プログラミングの負担軽減に有効なプログラミング支援装置、ロボットシステム、プログラミング支援方法及びプログラム生成方法を提供することができる。
以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。本実施形態に係るロボットシステムは、オペレータにより教示された動作をロボットに実行させることにより、加工、組立等の様々な作業を自動化するシステムである。
1.ロボットシステム
図1に示すように、ロボットシステム1は、ロボット2と、ロボットコントローラ3と、プログラミング支援装置100とを備える。
図1に示すように、ロボットシステム1は、ロボット2と、ロボットコントローラ3と、プログラミング支援装置100とを備える。
ロボット2は、例えば多軸(例えば6軸又は7軸)のシリアルリンク型の垂直多関節ロボットであり、その先端部2aにツールを保持した状態で様々な作業を実行できるように構成されている。ロボット2は、所定の範囲内において、先端部2aの位置及び姿勢を自在に変更し得るものであればよく、必ずしも6軸の垂直多関節ロボットに限られない。例えばロボット2は、6軸に1軸の冗長軸を追加した7軸の垂直多関節ロボットであってもよい。
ロボットコントローラ3は、予め生成された動作プログラムに従ってロボット2を制御する。動作プログラムは、例えばロボット2の先端部2aのパス情報を含む。パス情報は、先端部2aの位置・姿勢の経時的な推移を指定する情報である。例えばパス情報は、時系列に並ぶ複数の位置・姿勢目標値を含む。ロボットコントローラ3は、先端部2aの位置・姿勢を上記位置・姿勢目標値に一致させるための関節角度目標値(ロボット2の各関節の角度目標値)を算出し、当該関節角度目標値に従ってロボット2を制御する。
プログラミング支援装置100は、上記動作プログラムのプログラミングを支援する装置である。プログラミング支援装置100は、ロボット2の動作パターンを規定する複数の作業ジョブを記憶することと、複数の作業ジョブのいずれかについて、ロボット2の動作環境を指定する環境条件を、ユーザインタフェースへの入力に応じて設定することと、複数の作業ジョブのうち、ロボット2に実行させる複数の実行対象の作業ジョブを、ユーザインタフェースへの入力に応じて設定することと、複数の実行対象の作業ジョブの実行順序を定めた実行フローにおいて、少なくとも一つの作業ジョブが環境条件を満たすか否かを、当該実行順序に基づいて判定することと、を実行するように構成されている。
動作パターンとは、ロボット2に所定の作業を実行させるように、予め作成された動作命令である。動作パターンは、当該所定の作業の実行中における上記パス情報を含む。
プログラミング支援装置100は、実行フローのいずれか一つの前記作業ジョブの実行タイミングにおける環境状態を、当該実行フローの他の作業ジョブにおけるロボット2の動作内容と、当該実行フローの実行順序とに基づいて特定し、当該環境状態が当該一つの作業ジョブの環境条件を満たすか否かを判定してもよい。
図31は、例えば、蓋12を有しボルト13を収容する箱11を含む環境にてロボット2を動作させるための三つの作業ジョブを含む実行フローを模式的に示す。図31の(a)は、蓋12を開く作業ジョブ「ジョブ01」を示す。図31の(b)は、箱11からボルト13を取り出す別の作業ジョブ「ジョブ02」を示す。図31の(c)は、箱11の蓋12を閉じる更に別のジョブ「ジョブ03」を示す。
ジョブ01,02,03のそれぞれにより規定される動作パターンは、作業対象物を物理的に操作する動作を含む。例えばジョブ01により規定される動作パターンは、蓋12を作業対象物として、蓋12を閉じた状態から開いた状態にする動作を含む。ジョブ02により規定される動作パターンは、箱11内からボルト13を取り出す動作を含む。ジョブ03により規定される動作パターンは、蓋12を開いた状態から閉じた状態にする動作を含む。
図32に示すように、ジョブ01,02,03のそれぞれには、上述した環境条件が設定されている。それぞれの環境条件は、ロボットの作業環境に含まれる物の状態を指定する条件を含む。ロボットの作業環境に含まれる物とは、上述した作業対象物及びその他の物を含み得る。例えばジョブ01の蓋12を開く動作は、蓋12が閉じた状態でなければ実行することができない。このためジョブ01には、当該ジョブの作業対象物である蓋12の状態を指定する環境条件として、「蓋12が閉じていること」が設定されている。ジョブ02の箱11からボルト13を取り出す動作は、箱11内にボルト13が位置し、蓋12が開いている状態でなければ実行することができない。このためジョブ02には、当該ジョブの作業対象物であるボルト13の状態を指定する環境条件として、「ボルト13が箱11の中にあること」が設定され、他の物である蓋12の状態を指定する環境条件として、「蓋12が開いていること」が設定されている。更に、ジョブ03の蓋12を閉じる動作は、蓋12が開いた状態でなければ実行することができない。このためジョブ03には、当該ジョブの作業対象物である蓋12の状態を指定する環境条件として、「蓋12が開いていること」が設定されている。
図31のように、実行フローが二つ以上の作業ジョブを順に含む場合に、プログラミング支援装置100は、少なくとも先行する作業ジョブ(以下、「第一作業ジョブ」という。)におけるロボットの動作内容に基づいて後続する作業ジョブ(以下、「第二作業ジョブ」という。)の実行タイミングにおける環境状態を特定し、当該環境状態が第二作業ジョブの環境条件を満たすか否かを判定してもよい。
より具体的に、第一作業ジョブにより規定される動作パターンが、作業対象物を物理的に操作する動作を含み、第二作業ジョブの環境条件が、当該作業対象物の状態を指定する条件を含む場合に、プログラミング支援装置100は、第一作業ジョブに従ってロボット2が動作した後の当該作業対象物の状態を第二作業ジョブの実行タイミングにおける環境状態として特定し、当該環境状態が第二作業ジョブの環境条件を満たすか否かを判定してもよい。
環境状態とは、実行フローに従ってロボット2が動作する場合に、実行フローにおける各タイミングにおいてロボット2の作業環境に実際に生じる状態を意味する。環境条件と同様に、環境状態は、ロボット2の作業環境に含まれる物の状態を含む。ロボット2の作業環境に含まれる物とは、上述した作業対象物及びその他の物を含み得る。
例えば、図33に示すように、プログラミング支援装置100は、ジョブ01に従ってロボットが動作した後の蓋12の状態である「開」を、ジョブ02の実行タイミングにおける環境状態として特定する。また、ジョブ01はボルト13に対する動作を含んでいないので、プログラミング支援装置100は、ジョブ01に従ってロボット2が動作する前後でボルト13の状態を変化させず、ジョブ02においても引き続きボルト13の状態を「箱11の中」とする。プログラミング支援装置100は、これらの環境状態がジョブ02の環境条件を満たすか否かを判定する。ジョブ02における環境条件は、「ボルト13が箱11の中にあること」、「蓋12が開いていること」を含むので、当該環境状態は、ジョブ02における環境条件を満たすこととなる。
実行フローが第一作業ジョブ、第二作業ジョブ及び第三作業ジョブを順に含む場合に、プログラミング支援装置100は、少なくとも第一作業ジョブにおけるロボットの動作内容に基づいて第二作業ジョブの実行タイミングにおける環境状態を特定し、当該環境状態を少なくとも第二作業ジョブにおけるロボットの動作内容に基づいて更新して第三作業ジョブの実行タイミングにおける環境状態を特定し、当該環境状態が第三作業ジョブの環境条件を満たすか否かを判定してもよい。
例えば、プログラミング支援装置100は、上述したように、ジョブ01におけるロボットの動作内容に基づいて、ジョブ02の実行タイミングにおける蓋12及びボルト13の状態を「開」、「箱11の中」とする。更に、プログラミング支援装置100は、ジョブ02に従ってロボットが動作した後のボルト13の状態である「箱11の外」を、ジョブ03の実行タイミングにおける環境状態として特定する。また、ジョブ02は蓋12に対する動作を含んでいないので、プログラミング支援装置100は、ジョブ02に従ってロボット2が動作する前後で蓋12の状態を変化させず、ジョブ03においても引き続き蓋12の状態を「開」とする。プログラミング支援装置100は、これらの環境状態がジョブ03の環境条件を満たすか否かを判定する。ジョブ03における環境条件は、「蓋12が開いていること」を含み、ボルト13についての条件は含んでいないので、当該環境状態は、ジョブ03における環境条件を満たすこととなる。
プログラミング支援装置100は、実行フローのいずれか一つの作業ジョブの環境条件と、当該実行フローの他の作業ジョブにおけるロボット2の動作内容とに基づいて、当該一つの作業ジョブが当該環境条件を満たすために、当該一つの作業ジョブと当該他の作業ジョブとの間に必要とされる順序条件を生成し、当該実行フローの実行順序が当該順序条件を満たすか否かを判定してもよい。
例えばプログラミング支援装置100は、実行フローが、ジョブ01に従ってロボット2が動作した後の蓋12の状態である「開」と、ジョブ03に従ってロボット2が動作した後の蓋12の状態である「閉」と、ジョブ02の環境条件が指定する「蓋12が開いていること」との関係に基づいて、ジョブ02はジョブ01の後、ジョブ03の前に実行されること、という順序条件を生成する。図31において、ジョブ01、ジョブ02及びジョブ03は順に並んでいるので、図31の実行フローの実行順序は、当該順序条件を満たすこととなる。
プログラミング支援装置100は、ユーザインタフェースへの入力に基づいて、少なくとも二つの実行対象の作業ジョブの間に、実行タイミングの関係を指定するタイミング条件を更に設定するように構成されていてもよい。タイミング条件の具体例には、作業ジョブの順序を指定する条件が含まれる他、作業ジョブの間に確保すべき待機時間を指定する条件等も含まれる。この場合に、プログラミング支援装置100は、タイミング条件を満たすように実行順序を定めた実行フローにおいて、少なくとも一つの作業ジョブが環境条件を満たすか否かを当該実行順序に基づいて判定してもよい。
図34は、タイミング条件の設定例を示す。図34の例では、ジョブ01とジョブ02との間に「ジョブ01がジョブ02よりも前に実行されること」との条件が設定され、ジョブ02とジョブ03との間に「ジョブ03がジョブ02よりも後に実行されること」との条件が設定されている。このようなタイミング条件が設定される場合、当該タイミング条件を満たす実行フローによれば、ジョブ02の実行タイミングにおける蓋12の状態は必然的に「開」となる。このため、図34に示すタイミング条件が設定される場合、ジョブ02の環境条件として蓋12の状態を指定することが必須ではない。換言すると、ジョブ02の環境条件が「蓋が開いていること」を含んでいるのであれば、図34のタイミング条件を設定することが必須ではない。
動作プログラムは、例えば、ロボット2等の一つ以上の制御対象を制御するコントローラ(例えばロボットコントローラ3)によって実行される。プログラミング支援装置100が、動作プログラムのプログラミング支援を実行する制御対象は、一台のロボット2に限られない。例えばプログラミング支援装置100は、複数の制御対象(例えば複数台のロボット2)を制御するための動作プログラムのプログラミング支援を実行するように構成されていてもよい。
2.プログラミング支援装置
以下、プログラミング支援装置100の構成を具体的に説明する。図2に示すように、プログラミング支援装置100は、一つ又は複数のコンピュータにより構成された本体110と、ユーザインタフェース130とを備える。
以下、プログラミング支援装置100の構成を具体的に説明する。図2に示すように、プログラミング支援装置100は、一つ又は複数のコンピュータにより構成された本体110と、ユーザインタフェース130とを備える。
ユーザインタフェース130は、例えばモニタ131及び入力デバイス132を有する。モニタ131は、本体110から出力された情報を表示するための装置である。モニタ131は、グラフィック表示が可能であればいかなるものであってもよく、その具体例としては液晶パネルなどが挙げられる。入力デバイス132は、本体110に対し情報を入力するための装置である。入力デバイス132は、所望の情報を入力可能であればいかなるものであってもよく、その具体例としてはキーパッド及びマウス等が挙げられる。なお、モニタ131及び入力デバイス132は、入力機能と表示機能とを併せ持つタッチパネルとして一体化されていてもよい。
本体110は、機能的な構成(以下、「機能モジュール」という。)として、メインモジュール200と、環境構築モジュール300と、条件設定モジュール400と、プログラミングモジュール500と、シミュレーションモジュール600とを備える。
メインモジュール200は、ユーザの入力に応じて、プログラミング支援装置100の各種機能を呼び出すためのモジュールである。
環境構築モジュール300は、ロボット2の動作シミュレーション用の環境モデルデータ(モデルデータ)を構築するためのモジュールである。環境モデルデータは、例えばロボット2及びその周辺環境のモデルをポリゴンにより構成した三次元のサーフェスデータである。環境構築モジュール300は、構築した環境モデルデータを環境データ記憶部111に書き込む。
条件設定モジュール400は、作業ジョブごとの実行上の制約条件である第一制約条件と、作業ジョブ同士の関係についての制約条件である第二制約条件とを含むプログラミング支援条件を設定するためのモジュールである。
第一制約条件は、上述した環境条件等、作業ジョブの目的を達するために不可避な条件を含む。例えば、蓋つきの箱にワークを出し入れするための作業ジョブについては、蓋が空いた状態で実行することが上記不可避な条件となる。また、ツールにより加工を行うための作業ジョブについては、ツールを保持していること、ツールをオン状態にしていること等が上記不可避な条件となる。
第二制約条件は、上述したタイミング条件等、作業ジョブ同士の関係を規定する条件を含む。作業ジョブ同士の関係は、第一制約条件から導出可能なものであってもよいし、第一制約条件からは導出されないものであってもよい。第二制約条件は、個々の作業ジョブの目的を達するために不可避ではない条件も含む。
プログラミングモジュール500は、条件設定モジュール400により設定されたプログラミング支援条件に従って動作プログラムのプログラミング支援を実行するモジュールである。例えばプログラミングモジュール500は、上記プログラミング支援条件に従って動作プログラムを生成し、当該動作プログラムを動作プログラム記憶部112に書き込む。プログラミングモジュール500は、動作プログラムを生成するための仮フローをチェックしてもよい。
シミュレーションモジュール600は、ロボット2の動作シミュレーションを実行するモジュールである。動作シミュレーションとは、シミュレーション環境下においてロボット2のモデルを動作させることを意味する。例えばシミュレーションモジュール600は、上記環境モデルデータ(環境データ記憶部111に記憶された環境モデルデータ)により特定されるシミュレーション環境下において、上記動作プログラム(動作プログラム記憶部112に記憶された動作プログラム)に従ってロボット2のモデルを動作させる。
メインモジュール200は、画面データ生成部201及びモジュール切替部202を有する。画面データ生成部201は、メイン画面A1(図3参照)をモニタ131に表示するためのデータを生成する。メイン画面A1は、プログラミング支援装置100の各種機能を呼び出すための操作画面である。モジュール切替部202は、メイン画面A1への操作入力に応じて、実行するモジュールを切り替える、ユーザインタフェース上の一つ以上のボタンと関連付けられている。
図3に示すように、メイン画面A1は、例えば環境構築ボタンA2と、プランニングボタンA3と、シミュレーションボタンA4と、終了ボタンA5とを有する。環境構築ボタンA2は、環境構築モジュール300を起動するためのボタンである。プランニングボタンA3は、条件設定モジュール400及びプログラミングモジュール500を起動するためのボタンである。シミュレーションボタンA4は、シミュレーションモジュール600を起動するためのボタンである。終了ボタンA5は、メイン画面をクローズし、メインモジュール200による処理を終了させるためのボタンである。
以下、環境構築モジュール300、条件設定モジュール400、プログラミングモジュール500及びシミュレーションモジュール600の構成を説明する。
(1)環境構築モジュール
図4に示すように、環境構築モジュール300は、より細分化された機能モジュールとして、画面データ生成部301と、更新部302と、モデル追加部303と、描画データ生成部304と、属性データ登録部305と、状態データ登録部306とを有する。
図4に示すように、環境構築モジュール300は、より細分化された機能モジュールとして、画面データ生成部301と、更新部302と、モデル追加部303と、描画データ生成部304と、属性データ登録部305と、状態データ登録部306とを有する。
画面データ生成部301は、環境構築画面B1をモニタ131に表示するためのデータを生成する。環境構築画面B1は、環境モデルデータの構築用の入力画面である。
図5を参照して、環境構築画面B1によれば、モデルをシミュレーション環境(シミュレーション環境エリアB2によって表される)に追加する(モデル追加ボタンB3によって)こと、モデルの属性を規定すること(属性設定ボタンB4によって)こと、及びモデルの状態を設定すること(状態設定ボタンB5によって)ができる。以下、モデルを「入力ターゲットモデル」ともいう。モデルは、シミュレーション環境において物を表す。環境構築画面B1のいくつかの機能的な特徴として、入力ターゲットモデルは、シミュレーション環境エリア(B2)に表示される画像から選択されてもよい。図5に示すように、環境構築画面B1は、例えばシミュレーション環境エリアB2と、モデル追加ボタンB3と、属性設定ボタンB4と、状態設定ボタンB5と、終了ボタンB6とを有する。シミュレーション環境エリアB2は、構築中の環境モデルデータにより示されるシミュレーション環境を三次元画像等により表示するエリアである。
モデル追加ボタンB3は、環境モデルデータにモデルデータを追加するためのボタンである。モデルデータは、例えばポリゴンにより構成された三次元のサーフェスデータである。
属性設定ボタンB4は、環境モデルデータに含まれる物を特定するデータ(以下、「属性データ」という。)を入力するためのボタンである。
状態設定ボタンB5は、環境モデルデータに含まれる物の状態を示すデータ(以下、「状態データ」という。)を入力するためのボタンである。状態データの具体例として、物が蓋つきの箱である場合には、「蓋が開いた状態」、「蓋が閉じた状態」等が挙げられる。物がオン・オフを切り替えて用いられるツールである場合には、「オン状態」、「オフ状態」等が挙げられる。
終了ボタンB6は、環境構築画面B1をクローズし、環境構築モジュール300による処理を終了させるためのボタンである。
図4に戻り、更新部302は、入力デバイス132への操作入力に応じて、環境構築画面B1の表示用データを更新する。例えば更新部302は、モデル追加ボタンB3がクリックされるのに応じて、モデル選択画面C1を表示するように環境構築画面B1の表示用データを更新する。また、更新部302は、属性設定ボタンB4がクリックされるのに応じて、属性入力画面D1を表示するように環境構築画面B1の表示用データを更新する。更に、更新部302は、状態設定ボタンB5がクリックされるのに応じて、状態入力画面F1を表示するように環境構築画面B1の表示用データを更新する。
モデル追加ボタンB3がクリックされると(図5)、図6に示すモデル選択画面C1がユーザインタフェース上で開く。モデル選択画面C1は、環境モデルデータに追加すべきモデルデータを選択するための画面である。図6に示すように、モデル選択画面C1は、リスト表示エリアC2と、追加ボタンC3とを有する。リスト表示エリアC2は、環境モデルデータに追加可能なモデルデータのリストを表示する。追加ボタンC3は、リスト表示エリアC2において選択されたモデルデータの追加を指示するボタンである。
属性設定ボタンB4がクリックされると(図5)、図7に示す属性入力画面D1がユーザインタフェース上で開く。属性入力画面D1は、入力対象モデルの属性データを入力するための画面である。入力対象モデルは、環境モデルデータの構成要素としてシミュレーション環境エリアB2(図5)に表示されているモデルのいずれかをクリックすることによって選択可能である。図7に示すように、属性入力画面D1は、入力ボックスD2と、入力ボックスD3と、アイコン追加ボタンD4と、登録ボタンD5とを有する。入力ボックスD2は、入力対象モデルの種別(例えば「ロボット」、「ツール」、「ワーク」、「装置」等)を入力するための入力ボックスである。入力ボックスD2は、予め登録された選択肢の選択入力を可能とするように構成されていてもよい(図7の(b)参照)。入力ボックスD3は、上記入力対象モデルの名称を入力するための入力ボックスである。アイコン追加ボタンD4は、入力対象モデルに関連付けるアイコンデータを入力するためのボタンである。例えば、アイコンデータは、アイコン追加ボタンD4のクリックに伴い表示されるアイコン選択画面E1(図8)において入力可能である。
図8に示すように、アイコン選択画面E1は、リスト表示エリアE2と、追加ボタンE3とを有する。リスト表示エリアE2は、使用可能なアイコンデータのリストを表示する。追加ボタンE3は、リスト表示エリアE2において選択されたアイコンデータの追加を指示するボタンである。
図7に戻り、登録ボタンD5は、属性入力画面D1において入力されたデータの登録を指示するためのボタンである。登録ボタンD5は、入力された属性データを、入力ターゲットモデル(又は「物」、又はシミュレーション環境における「モデル部品」)と関連付けてストレージに登録(又は記録)するためのボタンである。
状態設定ボタンB5がクリックされると(図5)、図9に示す状態入力画面F1がユーザインタフェース上で開く。図9に示すように、状態入力画面F1は、入力ボックスF2と、入力ボックスF3と、登録ボタンF4とを含む。入力ボックスF2は、入力対象モデルを選択するための入力ボックスである。入力ボックスF2は、環境データ記憶部111に登録済みのモデル名の選択入力を可能とするように構成されていてもよい。入力ボックスF3は、状態の名称を入力するための入力ボックスである。登録ボタンF4は、状態入力画面F1において入力されたデータの登録を指示するためのボタンである。登録ボタンF4は、入力された状態を、入力ターゲットモデル(又は「物」、又はシミュレーション環境における「モデル部品」)と関連付けてストレージに登録(又は記録)するためのボタンである。
図4に戻り、更新部302は、環境構築画面B1(図5)においてモデル追加ボタンB3がクリックされ、モデルデータが環境モデルデータに追加された後に、追加後のシミュレーション環境の画像を表示するようにシミュレーション環境エリアB2の表示用データを更新する。
さらに図4を参照し、モデル追加部303は、ユーザインタフェース130への入力に応じて、環境データ記憶部111の環境モデルデータにモデルデータを追加する。例えばモデル追加部303は、モデル追加ボタンB3(図5)がクリックされるのに応じ、モデルデータ記憶部113を参照してモデルデータのリストを生成し、リスト表示エリアC2(図6)の表示用データとして更新部302に出力する。
モデルデータ記憶部113は、予め作成されてもよい複数のモデルデータ(又はデータ要素)を記憶する。モデルデータ記憶部113は、プログラミング支援装置100に設けられていてもよいし、プログラミング支援装置100の他の装置(例えば三次元設計用のコンピュータ)に設けられていてもよい。
図6に示すモデル選択画面C1をさらに参照して、その後、モデル追加部303は、追加ボタンC3のクリックにより選択されたモデルデータをモデルデータ記憶部113から取得して環境データ記憶部111の環境モデルデータに追加する。
描画データ生成部304は、環境データ記憶部111に記憶された環境モデルデータを用いてシミュレーション環境の描画データを生成し、シミュレーション環境エリアB2(図5)の表示用データとして更新部302に出力する。
属性データ登録部305は、ユーザインタフェース130への入力に応じて、環境データ記憶部111の環境モデルデータに上記属性データを追加する。例えば属性データ登録部305は、属性入力画面D1(図7)において入力されたデータを登録ボタンD5(図7)のクリックに応じて取得し、入力対象モデルに対応付けて環境データ記憶部111に書き込む。
状態データ登録部306は、ユーザインタフェース130への入力に応じて、環境データ記憶部111の環境モデルデータに上記状態データを追加する。例えば状態データ登録部306は、状態入力画面F1(図9)において入力されたデータを登録ボタンF4(図9)のクリックに応じて取得し、入力対象モデルに対応付けて環境データ記憶部111に書き込む。
(2)条件設定モジュール
条件設定モジュール400(図2)は、上記第一制約条件及び上記第二制約条件を分けて設定する。図10に示すように、条件設定モジュール400は、より細分化された機能モジュールとして、画面データ生成部401と、第一更新部402と、第二更新部403と、第三更新部404と、リスト生成部405と、制約メニュー生成部406と、第一入力サポート部408と、第二入力サポート部409と、オプション情報取得部410と、条件読込部411と、第一条件設定部412と、仮フロー生成部416と、第二条件設定部417と、演算レベル設定部418と、条件登録部419とを有する。
条件設定モジュール400(図2)は、上記第一制約条件及び上記第二制約条件を分けて設定する。図10に示すように、条件設定モジュール400は、より細分化された機能モジュールとして、画面データ生成部401と、第一更新部402と、第二更新部403と、第三更新部404と、リスト生成部405と、制約メニュー生成部406と、第一入力サポート部408と、第二入力サポート部409と、オプション情報取得部410と、条件読込部411と、第一条件設定部412と、仮フロー生成部416と、第二条件設定部417と、演算レベル設定部418と、条件登録部419とを有する。
画面データ生成部401は、第一制約条件を入力するための第一入力エリア及び第二制約条件を入力するための第二入力エリアを含む入力画面(図11参照)をモニタ131の表示用データを生成し、モニタ131に出力する。画面データ生成部401は、複数の作業ジョブのリストを示すリスト表示エリアを更に含む入力画面の表示用データを生成してもよい。画面データ生成部401は、リスト表示エリアが第一入力エリア及び第二入力エリアの間に配置されるように入力画面の表示用データを生成してもよい。
例えば画面データ生成部401は、図11に示すプランニング画面G1(入力画面)の表示用データを生成する。プランニング画面G1は、リスト表示エリアG2と、第一入力エリアG9と、第二入力エリアG20と、制約メニュー表示エリアG32と、第三入力エリアG34と、条件登録ボタンG36と、プランニングボタンG37と、保存ボタンG38とを有する。
リスト表示エリアG2は、予め作成されている複数の作業ジョブのリストを表示する。リスト表示エリアG2は、複数の作業ジョブにそれぞれ対応する複数のリスト要素G3を並べて表示する。リスト要素G3は、所定の時系列順に並んでいてもよい。リスト要素G3は、名称表示部G5及びアイコン表示部G6を含む。名称表示部G5は、作業ジョブの名称をテキスト形式で表示する。アイコン表示部G6は、作業ジョブの内容に関する一つ以上のアイコン(例えば作業対象物のアイコン)を表示する。
第一入力エリアG9は、第一制約条件を入力するためのエリアである。第一入力エリアG9は、作業内容入力エリアG10及び制約条件入力エリアG16を含む。
作業内容入力エリアG10は、作業ジョブの内容を特定する情報(以下、「作業内容情報」という。)を入力するためのエリアである。作業内容情報は、例えば作業対象物を特定する情報と、作業対象物に対する操作内容を特定する情報とを含む。なお、作業対象物は、ロボット2による作業の対象となればいかなる物であってもよい。ワークに対する作業に際してロボット2が用いるツールも、ロボット2による搬送作業の対象となるので、作業対象物に含まれる。
例えば作業内容入力エリアG10は、複数の項目指定ボタンG11と、アイコン選択エリアG12と、入力内容表示エリアG13と、名称入力エリアG15とを含む。項目指定ボタンG11は、上記作業内容情報の項目を選択するためのボタンである。アイコン選択エリアG12は、項目指定ボタンG11のクリックにより選択された項目に入力し得る選択肢をアイコン表示する。例えば、項目指定ボタンG11のうち「対象」ボタンがクリックされると、対象の選択肢(例えば、箱、ボルト、箱に収容された物等)がアイコンとして表示される。また、例えば、項目指定ボタンG11のうち「ツール」ボタンがクリックされると、ツールの選択肢(例えば、ねじ回し、レンチ、治具等)がアイコンとして表示される。入力内容表示エリアG13は、入力済みの作業内容情報を表示する。名称入力エリアG15は、作業ジョブの名称の入力を取得する。
制約条件入力エリアG16は、制約条件を入力するためのエリアである。制約条件入力エリアG16は、複数の条件入力部G17を有する。個々の条件入力部G17は、一つの制約条件の入力を取得する。条件入力部G17は、新規作成ボタンG18と、表示部G19とを有する。新規作成ボタンG18は、条件作成画面H1(図12を参照して後述)を表示させるためのボタンである。表示部G19は、条件作成画面H1において作成された条件を表示する。
第二入力エリアG20は、第二制約条件を入力するためのエリアである。第二入力エリアG20は、条件入力部G21及び結果出力部G29を有する。条件入力部G21は、フロー表示部G22と、タブG28とを含む。フロー表示部G22は、複数のフロー要素G24を並べた仮フローG23と、少なくとも一つの条件要素G25とを表示する。仮フローG23は、制御対象(例えばロボット2)によって実行される作業ジョブを含む手順を表す。仮フローG23は、動作プログラムを構成するために選択された複数の作業ジョブの実行順序を示す。複数のフロー要素G24は、複数の作業ジョブにそれぞれ対応する。
プログラミング支援装置100が、複数の制御対象(例えばロボット)について動作プログラムのプログラミング支援を実行する場合、第二入力エリアG20は、複数の制御対象にそれぞれ対応する複数の仮フローG23を、図11の「手順1」、「手順2」と名付けられたタブによって例示されるように表示してもよい。
条件要素G25は、仮フローG23における作業ジョブ間に設定された第二制約条件を図示する。例えば、条件要素G25は、第二制約条件の設定対象となっている二つの作業ジョブにそれぞれ対応する二つのフロー要素G24に関連付けて表示される。
図示の例においては、三つの条件要素G25,G26,G27が表示されている。条件要素G25は、一番目の作業ジョブと、二番目の作業ジョブとを一セットのジョブとしてグループ化する制約条件を示しており、一番目のフロー要素G24と二番目のフロー要素G24とを囲む枠体として表示されている。条件要素G26は、五番目の作業ジョブと、六番目の作業ジョブとの間に確保すべき時間間隔を定める制約条件を示しており、五番目のフロー要素G24と六番目のフロー要素G24とを結ぶライン上に図示されている。条件要素G27は、三番目の作業ジョブと、五番目の作業ジョブとの間に確保すべき時間間隔を定める制約条件を示しており、四番目のフロー要素G24を経ずに三番目のフロー要素G24と五番目のフロー要素G24とを結ぶライン上に図示されている。タブG28は、フロー表示部G22の上部に設けられており、条件入力部G21と結果出力部G29との表示切替に用いられる。
結果出力部G29は、プログラミングモジュール500により生成された実行フローを表示する。結果出力部G29は、実行フローを表示するフロー表示部G30と、タブG31とを含む。フロー表示部G30は、フロー表示部G22と同一の位置に表示される。タブG31は、上述のタブG28とは異なる位置にて、フロー表示部G30の上部に設けられている。フロー表示部G22が表示されている状態にてタブG31をクリックすると、フロー表示部G30を表示させることができ、フロー表示部G30が表示されている状態にてタブG28をクリックすると、フロー表示部G22を表示させることができる。
制約メニュー表示エリアG32は、第二入力エリアG20に入力可能な複数の制約条件のリストを表示する。制約メニュー表示エリアG32は、複数の制約条件にそれぞれ対応する複数のメニュー要素G33を並べて表示する。一例として、制約メニュー表示エリアG32は、第一入力エリアG9及び第二入力エリアG20の間において、リスト表示エリアG2に隣接するように配置されている。
第三入力エリアG34は、プログラミング支援における演算レベル(後述)の入力を取得する。例えば、第三入力エリアG34は、予め設定された複数の演算レベルをラジオボタンG35により選択し得るように構成されている。一例として、第三入力エリアG34は、第一入力エリアG9及び第二入力エリアG20の間に配置されており、制約メニュー表示エリアG32とは逆側にてリスト表示エリアG2に隣接するように配置されている。
条件登録ボタンG36は、第一入力エリアG9、第二入力エリアG20及び第三入力エリアG34への入力内容の登録を指示するためのボタンである。プランニングボタンG37は、第一入力エリアG9、第二入力エリアG20及び第三入力エリアG34への入力内容に従ったプログラミング支援の実行を指示するためのボタンである。プログラミング支援を実行することは、例えば、ロボットコントローラを動作させるための動作プログラムを生成することであってもよい。保存ボタンG38は、プログラミング支援により生成された動作プログラムの保存を指示するためのボタンである。
なお、プランニング画面G1の構成はあくまで一例である。入力画面は、第一入力エリア及び第二入力エリアを含む限りどのように構成されていてもよい。例えば入力画面は、第一入力エリア及び第二入力エリアがリスト表示エリアの上下に位置するように構成されていてもよい。入力画面は、第一入力エリアの少なくとも一部と、第二入力エリアの少なくとも一部とを同じ位置に切り替えて表示するように構成されていてもよい。
図10に戻り、第一更新部402は、ユーザインタフェース130への入力に応じて第一入力エリアG9の表示用データを更新する。第一更新部402は、リスト表示エリアG2において選択された作業ジョブの第一制約条件を入力可能とするように第一入力エリアG9の表示用データを更新してもよい。例えば、第一更新部402は、リスト表示エリアG2においていずれかのリスト要素G3がクリックされる(選択される)と、当該リスト要素G3に対応する作業ジョブの第一制約条件を入力可能とするように第一入力エリアG9の表示用データを更新する。より具体的に、第一更新部402は、当該作業ジョブについて既登録の情報が有る項目については、当該情報を当該項目の入力部分に表示し、他の項目については、当該項目の入力部分を空欄にするように第一入力エリアG9の表示用データを更新する。例えば、作業ジョブは、いくつかの項目(対象、ツール等)について、既に設定された条件を有していてもよい。なお、第一更新部402は、既登録の情報を後述の条件読込部411から取得する。
また、第一更新部402は、第一入力エリアG9への入力に応じて第一入力エリアG9の表示用データを更新する。例えば第一更新部402は、項目指定ボタンG11及びアイコン選択エリアG12への操作により、作業内容情報が入力されると、入力内容を反映させるように入力内容表示エリアG13を更新する。第一更新部402は、名称入力エリアG15へのテキスト入力に応じて、入力内容を名称入力エリアG15に表示する。第一更新部402は、条件入力部G17における新規作成ボタンG18のクリックに応じて、条件作成画面H1を表示するように第一入力エリアG9の表示用データを更新する。
例えば条件作成画面H1は、図12に示すように、入力ボックスH2と、入力ボックスH3と、入力ボックスH4と、作成ボタンH5とを有する。入力ボックスH2は、作業対象物を入力するための入力ボックスである。入力ボックスH3は、制約条件の適用タイミングを入力するための入力ボックスである。適用タイミングとは、作業ジョブの実行中のどの時点に制約条件を適用するかを示す情報である。入力ボックスH4は、制約条件の一例として、作業対象物の状態を指定する状態指定条件を入力するための入力ボックスである。入力ボックスH2,H3,H4は、予め登録された選択肢の選択入力を可能とするように構成されていてもよい(図12の(b)参照)。作成ボタンH5は、条件作成画面H1において入力されたデータに従った条件の作成を指示するためのボタンである。
図10に戻り、第一更新部402は、条件作成画面H1において入力されたデータに従った条件を作成し、当該条件を表示部G19に表示するように第一入力エリアG9の表示用データを更新する。
第二更新部403は、ユーザインタフェース130への入力に応じて第二入力エリアG20の表示用データを更新する。第二更新部403は、リスト表示エリアG2において選択された複数の作業ジョブを表示して当該複数の作業ジョブ間の第二制約条件を入力可能とするように第二入力エリアG20の表示用データを更新する。
第二更新部403は、リスト表示エリアG2において選択された複数の作業ジョブの仮フローG23を表示し、仮フローG23における作業ジョブ間に第二制約条件を入力可能とするように第二入力エリアG20の表示用のデータを更新してもよい。例えば、第二更新部403は、リスト表示エリアG2において選択したリスト要素G3を第二入力エリアG20に配置する入力がなされる度に、当該リスト要素G3に対応する作業ジョブを第二入力エリアG20の表示に追加するように表示用データを更新する。より具体的に、第二更新部403は、当該作業ジョブに対応するフロー要素G24を仮フローG23に追加するように表示用データを更新する。
なお、リスト表示エリアG2において選択したリスト要素G3を第二入力エリアG20に配置する入力の具体例としては、リスト表示エリアG2から第二入力エリアG20へのリスト要素G3のドラッグ入力、リスト表示エリアG2においてコピーしたリスト要素G3を第二入力エリアG20にペーストする入力等が挙げられるが、必ずしもこれらに限られない。
プログラミング支援装置100が、複数の制御対象について動作プログラムのプログラミング支援を実行する場合、第二更新部403は、複数の制御対象にそれぞれ対応する複数の仮フローG23を表示するように第二入力エリアG20の表示用データを更新してもよい。
第二入力エリアG20に仮フローG23が表示されることにより、仮フローG23における作業ジョブ間(フロー要素G24間)に第二制約条件を入力することが可能となる。例えば第二更新部403は、制約メニュー表示エリアG32において選択したメニュー要素G33を第二入力エリアG20のフロー要素G24間に配置する入力がなされると、当該メニュー要素G33に対応する制約条件を当該フロー要素G24間に挿入するように第二入力エリアG20の表示用データを更新する。
なお、制約メニュー表示エリアG32において選択したメニュー要素G33を第二入力エリアG20に配置する入力の具体例としては、制約メニュー表示エリアG32から第二入力エリアG20へのメニュー要素G33のドラッグ入力、制約メニュー表示エリアG32においてコピーしたメニュー要素G33を第二入力エリアG20にペーストする入力等が挙げられるが、必ずしもこれらに限られない。
プログラミング支援装置100が、複数の制御対象について動作プログラムのプログラミング支援を実行する場合、第二更新部403は、異なる制御対象のフロー要素G24間に制約条件を挿入するように第二入力エリアG20の表示用データを更新してもよい。
第二制約条件は、例えば、最初に2つのフロー要素を選択することによって、挿入又は追加されてもよい。2つのフロー要素を選択することは、二つのフロー要素G24を結ぶ線をクリックする(又は選択する)ことを含んでいてもよい。第二更新部403は、フロー要素G24間を結ぶ線がクリックされるのに応じ、規制入力画面J1を表示するように第二入力エリアG20の表示用データを更新する。規制入力画面J1は、フロー要素G24間に対応する作業ジョブ間に制約条件を入力するための画面である。図13に示すように、規制入力画面J1は、入力ボックスJ2を含む。入力ボックスJ2は、順番制約(順番変更の禁止)の有無を入力するための入力ボックスである。例えば入力ボックスJ2は、「あり」(順番制約があることを示す)、「なし」(順番制約がないことを示す)の選択入力を可能とするように構成されていてもよい(図13の(b)参照)。
図10に戻り、また、図11を参照して、仮フローG23は、仮フロー生成部416により生成される。仮フロー生成部416は、第二入力エリアG20に一つ目の作業ジョブのフロー要素G24が表示されている状態で、二つ目の作業ジョブのリスト要素G3が第二入力エリアG20にドラッグされた際に、ドラッグ完了位置と、既存のフロー要素G24との位置関係に基づいて、一つ目の作業ジョブと二つ目の作業ジョブの順序を設定し、最初の仮フローG23を生成する。例えば、仮フローG23が、一つ目の作業ジョブに対応する第一フロー要素G24を含み、第二作業ジョブに対応するリスト要素G3のドラッグの完了位置がフロー要素G24の下である場合、二つ目のフロー要素G24が生成され、仮フローG23は、二つ目の作業ジョブを一つ目の作業ジョブの後に実行するように更新される。ドラッグの完了位置が一つ目のフロー要素G24の上である場合、仮フローG23は、二つ目の作業ジョブを一つ目の作業ジョブの前に実行するように更新される。
以後、仮フロー生成部416は、リスト表示エリアG2から第二入力エリアG20にリスト要素G3がドラッグされる度に(又は、仮フローG23への挿入のために作業ジョブが他の何らかの方法で選択される度に)、当該リスト要素G3に対応する作業ジョブを仮フローG23に挿入する。この際に、仮フロー生成部416は、既存のフロー要素G24とドラッグ完了位置との関係に応じて作業ジョブの挿入位置を求める。
プログラミング支援装置100が、複数の制御対象について動作プログラムのプログラミング支援を実行する場合、仮フロー生成部416は、複数の制御対象にそれぞれ対応する複数の仮フローG23を生成してもよい。
第三更新部404は、ユーザインタフェース130への入力に応じて第三入力エリアG34の表示用データを更新する。例えば、第三更新部404は、第三入力エリアG34においてクリック又は選択されたラジオボタンG35をオンにするように表示用データを更新する。
リスト生成部405は、リスト表示エリアG2に表示するための作業ジョブのリストを生成し、画面データ生成部401に出力する。例えばリスト生成部405は、作業ジョブ記憶部114を参照して作業ジョブのリストを生成する。
作業ジョブ記憶部114は、ユーザにより予め作成された複数の作業ジョブを記憶する。作業ジョブ記憶部114は、プログラミング支援装置100に設けられていてもよいし、プログラミング支援装置100の他の装置(例えばロボットコントローラ3)に設けられていてもよい。
制約メニュー生成部406は、制約メニュー表示エリアG32に表示するための制約条件のリストを生成し、画面データ生成部401に出力する。例えば制約メニュー生成部406は、制約メニュー記憶部407を参照して制約メニューのリストを生成する。制約メニュー記憶部407は、予め作成された複数の制約メニューを記憶する。
オプション情報取得部410は、上記環境データ記憶部111から、環境モデルデータに含まれる物を特定する第一オプション情報と、当該物の状態を示す第二オプション情報とを取得する。
第一入力サポート部408は、作業対象物の選択肢を設定し、当該選択肢の表示用のデータを生成する。例えば第一入力サポート部408は、条件作成画面H1において、入力ボックスH2(図12)に作業対象物を選択入力させるための選択肢を生成する。第一入力サポート部408は、第一オプション情報に基づいて作業対象物の選択肢を設定してもよい。この場合、環境構築モジュール300により取得された情報が作業対象物の選択肢として利用される。
第二入力サポート部409は、状態の指定対象となる作業対象物に応じて、状態指定条件の選択肢を設定し、当該選択肢の表示用のデータを生成する。例えば第二入力サポート部409は、条件作成画面H1において、入力ボックスH2に入力された作業対象物に応じて、入力ボックスH4(図12)に状態を選択入力させるための選択肢を生成する。第二入力サポート部409は、第二オプション情報に基づいて状態指定条件の選択肢を設定してもよい。この場合、環境構築モジュール300により取得された情報が状態指定条件の選択肢として利用される。例えば第二入力サポート部409は、入力ボックスH2に入力された作業対象物の状態を、第二オプション情報から抽出し、抽出結果を状態指定条件の選択肢とする。
第一条件設定部412は、第一制約条件を、ユーザインタフェース130への入力に応じて設定し、当該第一制約条件の対象となる作業ジョブの識別情報と対応付けて一時記憶用の条件バッファ415に書き込む。
上述のように、第一制約条件は、作業ジョブの作業対象物の状態を指定する状態指定条件を含んでもよい。この場合、第一条件設定部412は、より細分化された機能モジュールとして、対象物設定部413と状態設定部414とを含んでもよい。対象物設定部413は、第一入力エリアG9への入力に基づいて作業ジョブの作業対象物を設定する。例えば対象物設定部413は、入力内容表示エリアG13に表示される内容に基づいて作業ジョブの作業対象物を設定する。状態設定部414は、第一入力エリアG9への入力に基づいて状態指定条件を設定する。例えば状態設定部414は、条件入力部G17に入力された内容に基づいて作業対象物の状態指定条件を設定する。
第二条件設定部417は、作業ジョブ同士の関係についての制約条件である第二制約条件を、ユーザインタフェース130への入力に応じて設定する。例えば、第二条件設定部417は、第二入力エリアG20において作業ジョブ間に入力された制約条件に基づいて第二制約条件を設定する。
プログラミング支援装置100が、複数の制御対象について動作プログラムのプログラミング支援を実行する場合、第二条件設定部417は、異なる制御対象の作業ジョブ間に制約条件を設定してもよい。
演算レベル設定部418は、プログラミング支援における演算レベル(後述)を、ユーザインタフェース130への入力に応じて設定する。例えば、演算レベル設定部418は、後述の実行フローの採用可否を判定するための基準を調節する演算レベルを設定する。
条件登録部419は、第一制約条件及び第二制約条件の少なくとも一方を条件記憶部に登録する。例えば条件登録部419は、条件バッファ415の記憶内容(例えば第一制約条件と関連付けられている)を個別条件記憶部420に書き込む。また、条件登録部419は、第二条件設定部417により設定された第二制約条件を、当該第二制約条件の対象となる作業ジョブと対応付けてジョブ間条件記憶部422に書き込む。更に、条件登録部419は、第二入力エリアG20に表示されている複数の作業ジョブを実行対象のジョブとして実行対象記憶部421に書き込む。例えば、条件登録部419は、仮フローG23の複数のフロー要素G24にそれぞれ対応する複数の作業ジョブを実行対象のジョブとして実行対象記憶部421に書き込む。更に、条件登録部419は、演算レベル設定部418により設定された演算レベルを演算条件記憶部423に書き込む。
条件読込部411は、条件記憶部から第一制約条件及び第二制約条件の少なくとも一方を読み込む。例えば条件読込部411は、個別条件記憶部420から第一制約条件を読み込む。
(3)プログラミングモジュール
プログラミングモジュール500は、プランニングボタンG37(図11)のクリックに応じて起動される。図14に示すように、プログラミングモジュール500は、より細分化された機能モジュールとして、プランニング支援部501と、プログラム生成部510とを有する。
プログラミングモジュール500は、プランニングボタンG37(図11)のクリックに応じて起動される。図14に示すように、プログラミングモジュール500は、より細分化された機能モジュールとして、プランニング支援部501と、プログラム生成部510とを有する。
プランニング支援部501は、第一制約条件及び第二制約条件に基づいて、少なくとも一つの作業ジョブの実行タイミングをチェックする。チェックとは、第一制約条件及び第二制約条件を満たしているかを確認することを意味する。例えばプランニング支援部501は、ロボットの動作パターンを規定する複数の作業ジョブを記憶することと、複数の作業ジョブのいずれかについて、ロボット2の動作環境を指定する環境条件を、ユーザインタフェースへの入力に応じて設定することと、複数の作業ジョブのうち、ロボット2に実行させる複数の実行対象の作業ジョブを、ユーザインタフェースへの入力に応じて設定することと、複数の実行対象の作業ジョブの実行順序を定めた実行フローにおいて、少なくとも一つの作業ジョブが環境条件を満たすか否かを、当該実行順序に基づいて判定することと、を実行する。実行フローは、プランニング支援部501が自動生成するものであってもよいし、ユーザが設定して入力したものであってもよい。以下においては、プランニング支援部501が実行フローを自動生成する場合を説明する。
例えばプランニング支援部501は、より細分化された機能モジュールとして、判定部504と、フロー調節部503と、パス情報取得部505と、つなぎジョブ生成部506と、フロー評価部507と、更新部502とを含む。
判定部504は、個別条件記憶部420に記憶された第一制約条件と、ジョブ間条件記憶部422に記憶された第二制約条件とに基づいて、少なくとも一つの作業ジョブの実行タイミングをチェックする。判定部504は、複数の実行対象の作業ジョブの実行順序を定めた実行フローにおいて、少なくとも一つの作業ジョブが環境条件を満たすか否かを、当該実行順序に基づいて判定する。
例えば判定部504は、実行フローのいずれか一つの作業ジョブの実行タイミングにおける環境状態を、当該実行フローの他の作業ジョブにおけるロボット2の動作内容と、当該実行フローの実行順序とに基づいて特定し、当該環境状態が当該一つの作業ジョブの環境条件を満たすか否かを判定する。
実行フローが第一作業ジョブ及び第二作業ジョブを順に含む場合に、判定部504は、少なくとも第一作業ジョブにおけるロボット2の動作内容に基づいて第二作業ジョブの実行タイミングにおける環境状態を特定し、当該環境状態が第二作業ジョブの環境条件を満たすか否かを判定してもよい。
より具体的に、第一作業ジョブにより規定される動作パターンが、作業対象物を物理的に操作する動作を含み、第二作業ジョブの環境条件が、当該作業対象物の状態を指定する条件を含む場合に、判定部504は、第一作業ジョブに従ってロボット2が動作した後の当該作業対象物の状態を第二作業ジョブの実行タイミングにおける環境状態として特定し、当該環境状態が第二作業ジョブの環境条件を満たすか否かを判定してもよい。
実行フローが第一作業ジョブ、第二作業ジョブ及び第三作業ジョブを順に含む場合に、判定部504は、少なくとも第一作業ジョブにおけるロボット2の動作内容に基づいて第二作業ジョブの実行タイミングにおける環境状態を特定し、当該環境状態を少なくとも第二作業ジョブにおけるロボット2の動作内容に基づいて更新して第三作業ジョブの実行タイミングにおける環境状態を特定し、当該環境状態が第三作業ジョブの環境条件を満たすか否かを判定してもよい。
判定部504は、実行フローのいずれか一つの作業ジョブの環境条件と、当該実行フローの他の作業ジョブにおけるロボット2の動作内容とに基づいて、当該一つの作業ジョブが当該環境条件を満たすために、当該一つの作業ジョブと当該他の作業ジョブとの間に必要とされる順序条件を生成し、当該実行フローの実行順序が当該順序条件を満たすか否かを判定してもよい。
フロー調節部503は、タイミング条件を満たすように、判定部504による判定対象となる実行フローを生成する。また、実行フローにおいていずれかの作業ジョブが環境条件を満たしていないと判定した場合に、タイミング条件を満たすように実行順序を変更する。例えばフロー調節部503は、タイミング条件を満たす範囲にて、実行対象記憶部421に記憶された複数の作業ジョブの実行フローをランダムに生成する。その後フロー調節部503は、実行フローにおいていずれかの作業ジョブが環境条件を満たしていないと判定した場合に、タイミング条件を満たすように実行順序をランダムに変更する。以後、フロー調節部503は、タイミング条件を満たす実行フローが環境条件を満たさない作業ジョブを含んでいない状態となるまで、実行順序の変更を繰り返す。フロー調節部503は、実行フローを生成又は変更する度に、その結果を一時記憶用のフローバッファ508に上書きする。
プログラミング支援装置100が、複数の制御対象について動作プログラムのプログラミング支援を実行する場合、フロー調節部503は、複数の制御対象にそれぞれ対応する複数の実行フローを生成してもよい。
パス情報取得部505は、少なくとも一つの作業ジョブについて、ロボット2の動作パス(先端部2aの位置・姿勢の継時的な推移)を規定する第一パス情報を取得する。例えばパス情報取得部505は、実行対象の作業ジョブの全ての第一パス情報を実行対象記憶部421から読み込む。
つなぎジョブ生成部506は、フローバッファ508に記憶された実行フローと、パス情報取得部505により取得された第一パス情報と、環境データ記憶部111に記憶された環境モデルデータとに基づいて、作業ジョブ間におけるロボット2の動作パスを規定する第二パス情報を生成する。例えばつなぎジョブ生成部506は、先行する作業ジョブの動作パスの終点と、後続する作業ジョブの動作パスの始点との間を結び、ロボット2とその周辺配置物との衝突を回避するように、第二パス情報を生成し、一時記憶用のパスバッファ509に書き込む。
例えばつなぎジョブ生成部506は、衝突を回避可能な経由点を生成し、当該経由点を通るようにパスを修正することを、パス全体にわたって衝突回避が可能となるまで繰り返す。より具体的なパスの生成手法は、例えば特許第4103057号等に開示されている。
フロー評価部507は、第一制約条件及び第二制約条件とは異なる評価条件に基づいて、実行フローと、第一パス情報及び第二パス情報の少なくとも一方を評価し、評価結果に基づいて実行フローの採用可否を判定する。例えばフロー評価部507は、実行フロー、第一パス情報及び第二パス情報を上記評価条件に基づいて評価し、評価結果に基づいて実行フローの採用可否を判定する。例えば、評価結果は、実行フローが動作プログラムとして実行された場合の実行時間、動作プログラムが実行された時のエネルギー消費等の目安であってもよい。評価結果は、評価条件が満たされているか、そして実行フローが採用可能であるかを判定するために、基準値と比較されてもよい。
より具体的に、フロー評価部507は、実行フロー、第一パス情報及び第二パス情報に従った動作プログラムについて所定の評価値を導出し、当該評価値が合格ラインに達している場合に実行フローを採用可とし、当該評価値が合格ラインに達していない場合に実行フローを採用不可とする。評価値の具体例としては、動作プログラムの実行時間、又は動作プログラムの消費電力(動作プログラムに従って動作するロボット2の消費電力)等が挙げられる。実行時間及び消費電力を組み合わせて評価値を導出してもよい。
また、フロー評価部507は、実行フローの生成及び上記評価値の導出を所定時間繰り返し、最も好ましい評価値が得られる実行フローを採用可としてもよい。例えばフロー評価部507は、動作プログラムの実行時間が最も小さくなる実行フローを採用可としてもよいし、動作プログラムの消費電力が最も小さくなる実行フローを採用可としてもよい。
なお、フロー評価部507は、演算条件記憶部423に記憶されている演算レベルに応じて、実行フローの採用可否を判定するための基準を調節してもよい。例えばフロー評価部507は、演算条件記憶部423に記憶されている演算レベルが高くなるのに応じて上記合格ラインを高くしてもよいし、実行フローの生成及び上記評価値の導出を繰り返す時間を長くしてもよい。
また、フロー評価部507は、演算条件記憶部423に記憶されている演算レベルに応じて、評価対象の動作プログラムの精度を調節してもよい。例えばフロー評価部507は、演算条件記憶部423に記憶されている演算レベルが低くなるのに応じて、評価対象の動作プログラムを簡易化し、演算時間の短縮化を図ってもよい。簡易化の具体例として、第二パス情報の生成を省略し、作業ジョブ間の動作パスを直線状にすること、作業ジョブ間の時間を一定値にすること、環境モデルデータにおけるメッシュを粗くすること等が挙げられる。
更新部502は、フロー評価部507により採用可とされた実行フローを結果出力部G29に表示するように、第二入力エリアG20の表示用データを更新する。
プログラム生成部510は、プランニング支援部501により採用可と判定された実行フローに基づいて、ロボット2の動作プログラムを生成する。動作プログラムは、例えば、上記実行フローに従って上記第一パス情報及び上記第二パス情報を並べたものである。
プログラム登録部511は、プログラム生成部510により生成された動作プログラムを、ユーザインタフェース130への入力に応じて動作プログラム記憶部112に登録する。例えばプログラム登録部511は、保存ボタンG38がクリックされるのに応じて、動作プログラムを動作プログラム記憶部112に書き込む。
なお、プログラミングモジュール500は、少なくとも実行タイミングのチェック結果に基づくプログラミング支援を行っていればよいので、必ずしも動作プログラムの自動生成を実行しなくてよい。例えば、プログラミングモジュール500は、ユーザが入力した実行フローが第一制約条件及び第二制約条件の少なくとも一方を満たしていない場合に、その旨の警告表示をするように構成されていてもよい。
(4)シミュレーションモジュール
図15に示すように、シミュレーションモジュール600は、より細分化された機能モジュールとして、画面データ生成部601と、更新部602と、プログラム設定部603と、シミュレーション実行部604と、動画データ生成部605とを有する。
図15に示すように、シミュレーションモジュール600は、より細分化された機能モジュールとして、画面データ生成部601と、更新部602と、プログラム設定部603と、シミュレーション実行部604と、動画データ生成部605とを有する。
さらに図16を参照して、画面データ生成部601は、シミュレーション画面K1をモニタ131に表示するためのデータを生成する。シミュレーション画面K1は、シミュレーション結果をグラフィック表示するための画面である。
図16に示すように、シミュレーション画面K1は、描画エリアK2と、プログラム選択ボタンK3と、シミュレーション実行ボタンK4と、終了ボタンK5とを有する。描画エリアK2は、シミュレーション結果を三次元画像等により表示するエリアである。プログラム選択ボタンK3は、シミュレーション対象の動作プログラムを選択するためのボタンである。シミュレーション実行ボタンK4は、シミュレーションの実行を指示するためのボタンである。終了ボタンK5は、シミュレーション画面K1をクローズし、シミュレーションモジュール600による処理を終了させるためのボタンである。
図15に戻り、更新部602は、入力デバイス132への操作入力に応じて、シミュレーション画面K1の表示用データを更新する。例えば更新部602は、上記プログラム選択ボタンK3がクリックされるのに応じて、プログラム選択画面L1を表示するようにシミュレーション画面K1の表示用データを更新する。プログラム選択画面L1は、シミュレーション対象の動作プログラムを選択するための画面である。
図17に示すように、プログラム選択画面L1は、リスト表示エリアL2と、選択ボタンL3とを有する。リスト表示エリアL2は、選択可能な動作プログラム(例えば動作プログラム記憶部112に記憶されている動作プログラム)のリストを表示する。選択ボタンL3は、リスト表示エリアL2において選択された動作プログラムの選択を指示するボタンである。
また、更新部602は、シミュレーション実行ボタンK4がクリックされ、シミュレーション結果に応じた動画データ(後述)が生成された後に、当該動画データをリスト表示エリアL2に表示するように描画エリアK2の表示用データを更新する。
図15に戻り、プログラム設定部603は、プログラム選択画面L1において選択された動作プログラムを、シミュレーション対象の動作プログラムに設定する。シミュレーション実行部604は、ロボット2の動作シミュレーションを実行する。例えばシミュレーション実行部604は、環境データ記憶部111に記憶された環境モデルデータにより特定されるシミュレーション環境下において、シミュレーション対象の動作プログラムに従ってロボット2のモデルを動作させる。
動画データ生成部605は、シミュレーション実行部604によるシミュレーション結果に従って、ロボット2のモデルの動画データを生成する。
図18は、本体110のハードウェア構成を例示するブロック図である。図18に示すように、本体110は回路120を有し、回路120は、一つ又は複数のプロセッサ121と、記憶部122と、通信ポート125と、入出力ポート126とを有する。記憶部122は、メモリ123及びストレージ124を含む。ストレージ124は、本体110の上記各機能モジュールを構成するためのプログラムを記録している。ストレージ124は、コンピュータ読み取り可能であればどのようなものであってもよい。具体例として、ハードディスク、不揮発性の半導体メモリ、磁気ディスク及び光ディスク等が挙げられる。メモリ123は、ストレージ124からロードしたプログラム及びプロセッサ121の演算結果等を一時的に記憶する。プロセッサ121は、メモリ123と協働してプログラムを実行することで、各機能モジュールを構成する。
通信ポート125は、プロセッサ121からの指令に応じ、ロボットコントローラ3との間で電気信号の入出力を行う。入出力ポート126は、プロセッサ121からの指令に応じ、モニタ131及び入力デバイス132との間で電気信号の入出力を行う。
3.プログラム生成方法
続いて、プログラム生成方法及びプログラミング支援方法の一例として、プログラミング支援装置100が実行するプログラム生成手順を説明する。
続いて、プログラム生成方法及びプログラミング支援方法の一例として、プログラミング支援装置100が実行するプログラム生成手順を説明する。
(1)概要
図19に示すように、まず、プログラミング支援装置100はステップS01を実行する。ステップS01では、画面データ生成部201が、メイン画面A1の表示用データを生成し、モニタ131に出力する。
図19に示すように、まず、プログラミング支援装置100はステップS01を実行する。ステップS01では、画面データ生成部201が、メイン画面A1の表示用データを生成し、モニタ131に出力する。
次に、プログラミング支援装置100はステップS02を実行する。ステップS02では、環境構築ボタンA2がクリックされたか否かをモジュール切替部202が確認する。
ステップS02において、環境構築ボタンA2がクリックされたと判定した場合、プログラミング支援装置100はステップS03を実行する。ステップS03では、環境構築モジュール300が、ロボット2の動作シミュレーション用の環境モデルデータを構築する。具体的な処理内容については後述する。
ステップS02において、環境構築ボタンA2はクリックされていないと判定した場合、プログラミング支援装置100はステップS04を実行する。ステップS04では、プランニングボタンA3がクリックされたか否かをモジュール切替部202が確認する。
ステップS04において、プランニングボタンA3がクリックされたと判定した場合、プログラミング支援装置100はステップS05,S06を実行する。ステップS05では、条件設定モジュール400が、上記第一制約条件及び上記第二制約条件を含むプログラミング支援条件を設定する処理を実行する。ステップS06では、プログラミングモジュール500が、条件設定モジュール400により設定されたプログラミング支援条件に従って動作プログラムのプログラミング支援を実行する。例えばプログラミングモジュール500は、上記プログラミング支援条件に従って動作プログラムを生成する。これらの具体的な処理内容については後述する。
ステップS04において、プランニングボタンA3はクリックされていないと判定した場合、プログラミング支援装置100はステップS07を実行する。ステップS07では、シミュレーションボタンA4がクリックされたか否かをモジュール切替部202が確認する。
ステップS07において、シミュレーションボタンA4がクリックされたと判定した場合、プログラミング支援装置100はステップS08を実行する。ステップS08では、ロボット2の動作シミュレーションを実行する。具体的な処理内容については後述する。
ステップS03,S06,S08を実行した後、プログラミング支援装置100はステップS09を実行する。ステップS07においてシミュレーションボタンA4がクリックされていないと判定した場合も、プログラミング支援装置100はステップS09を実行する。ステップS09では、終了ボタンA5がクリックされたか否かをモジュール切替部202が確認する。
ステップS09において、終了ボタンA5がクリックされていないと判定した場合、プログラミング支援装置100は処理をステップS02に戻す。以後、終了ボタンA5がクリックされるまでは、環境構築ボタンA2、プランニングボタンA3又はシミュレーションボタンA4のクリックに応じた処理が繰り返される。
ステップS09において、終了ボタンA5がクリックされたと判定した場合、プログラミング支援装置100は、メイン画面A1をクローズして処理を終了する。
(2)環境モデルデータの構築手順
続いて、上記ステップS03における環境モデルデータの構築手順を説明する。図20に示すように、プログラミング支援装置100は、まずステップS11を実行する。ステップS11では、画面データ生成部301が、環境構築画面B1の表示用データを生成し、モニタ131に出力する。
続いて、上記ステップS03における環境モデルデータの構築手順を説明する。図20に示すように、プログラミング支援装置100は、まずステップS11を実行する。ステップS11では、画面データ生成部301が、環境構築画面B1の表示用データを生成し、モニタ131に出力する。
次に、プログラミング支援装置100はステップS12を実行する。ステップS12では、モデル追加ボタンB3がクリックされたか否かを更新部302が確認する。
ステップS12において、モデル追加ボタンB3がクリックされたと判定した場合、プログラミング支援装置100はステップS13を実行する。ステップS13では、モデル追加部303がモデルデータ記憶部113を参照してモデルデータのリストを生成し、当該リストを用いて、更新部302がモデル選択画面C1の表示用データを生成し、モデル選択画面C1を表示するように環境構築画面B1の表示用データを更新する。
次に、プログラミング支援装置100はステップS14を実行する。ステップS14では、モデル追加部303が、モデル選択画面C1におけるモデルデータの選択入力を待機する。
次に、プログラミング支援装置100はステップS15を実行する。ステップS15では、モデル追加部303が、モデル選択画面C1において選択されたモデルデータをモデルデータ記憶部113から取得して環境データ記憶部111の環境モデルデータに追加する。
次に、プログラミング支援装置100はステップS16,S17を実行する。ステップS16では、描画データ生成部304が、環境データ記憶部111に記憶された環境モデルデータを用いてシミュレーション環境の描画データを生成し、シミュレーション環境エリアB2の表示用データとして更新部302に出力する。
ステップS17では、更新部302が、描画データ生成部304から出力されたデータによってシミュレーション環境エリアB2の表示用データを更新する。
ステップS12において、モデル追加ボタンB3がクリックされていないと判定した場合、プログラミング支援装置100はステップS18を実行する。ステップS18では、少なくとも一つのモデルデータが環境モデルデータに追加されているか否かをモデル追加部303が確認する。
ステップS18において、環境モデルデータに追加済みのモデルデータが有ると判定した場合、プログラミング支援装置100はステップS19を実行する。ステップS19では、属性設定ボタンB4がクリックされたか否かを更新部302が確認する。
ステップS19において、属性設定ボタンB4がクリックされたと判定した場合、プログラミング支援装置100はステップS20を実行する。ステップS20では、属性データ登録部305が、入力対象モデルの属性データを登録する。具体的な処理内容については後述する。
ステップS19において、属性設定ボタンB4はクリックされていないと判定した場合、プログラミング支援装置100はステップS21を実行する。ステップS21では、状態設定ボタンB5がクリックされたか否かをモデル追加部303が確認する。
ステップS21において、状態設定ボタンB5がクリックされたと判定した場合、プログラミング支援装置100はステップS22を実行する。ステップS22では、状態データ登録部306が、入力対象モデルの状態データを登録する。具体的な処理内容については後述する。
ステップS17,S20,S22を実行した後、プログラミング支援装置100はステップS23を実行する。ステップS21において、状態設定ボタンB5がクリックされていないと判定した場合、及びステップS18において、環境モデルデータに追加済みのモデルデータは無いと判定した場合も、プログラミング支援装置100はステップS23を実行する。ステップS23では、終了ボタンB6がクリックされたか否かを更新部302が確認する。
ステップS23において、終了ボタンB6がクリックされていないと判定した場合、プログラミング支援装置100は処理をステップS12に戻す。以後、終了ボタンB6がクリックされるまでは、環境モデルデータの構築処理が繰り返される。
ステップS23において、終了ボタンB6がクリックされたと判定した場合、プログラミング支援装置100は、環境構築画面B1をクローズして処理を終了する。
(属性データの登録手順)
図21に示すように、プログラミング支援装置100は、まずステップS31を実行する。ステップS31では、更新部302が、属性入力画面D1を表示するように環境構築画面B1の表示用データに追加する。
図21に示すように、プログラミング支援装置100は、まずステップS31を実行する。ステップS31では、更新部302が、属性入力画面D1を表示するように環境構築画面B1の表示用データに追加する。
次に、プログラミング支援装置100はステップS32を実行する。ステップS32では、更新部302が、属性入力画面D1への情報入力の有無を判定する。
ステップS32において、属性入力画面D1への情報入力が有ると判定した場合、プログラミング支援装置100はステップS33を実行する。ステップS33では、更新部302が、入力内容を反映させるように属性入力画面D1の表示用データを更新する。
次に、プログラミング支援装置100はステップS34を実行する。ステップS32において、属性入力画面D1への情報入力が無いと判定した場合、プログラミング支援装置100はステップS33を実行することなくステップS34を実行する。ステップS34では、登録ボタンD5がクリックされたか否かを更新部302が確認する。
ステップS34において、登録ボタンD5がクリックされていないと判定した場合、プログラミング支援装置100は処理をステップS32に戻す。以後、登録ボタンD5がクリックされるまでは、属性データの入力に応じた属性入力画面D1の表示用データの更新が繰り返される。
ステップS34において、登録ボタンD5がクリックされたと判定した場合、プログラミング支援装置100はステップS35を実行する。ステップS35では、属性データ登録部305が、属性入力画面D1において入力されたデータを取得し、入力対象モデルに対応付けて環境データ記憶部111に書き込む。以上で属性データの登録手順が完了する。
(状態データの登録手順)
図22に示すように、プログラミング支援装置100は、まずステップS41を実行する。ステップS41では、更新部302が、状態入力画面F1を表示するように環境構築画面B1の表示用データに追加する。
図22に示すように、プログラミング支援装置100は、まずステップS41を実行する。ステップS41では、更新部302が、状態入力画面F1を表示するように環境構築画面B1の表示用データに追加する。
次に、プログラミング支援装置100はステップS42を実行する。ステップS42では、更新部302が、状態入力画面F1への情報入力の有無を判定する。
ステップS42において、状態入力画面F1への情報入力が有ると判定した場合、プログラミング支援装置100はステップS43を実行する。ステップS43では、更新部302が、入力内容を反映させるように状態入力画面F1の表示用データを更新する。
次に、プログラミング支援装置100はステップS44を実行する。ステップS42において、状態入力画面F1への情報入力が無いと判定した場合、プログラミング支援装置100はステップS43を実行することなくステップS44を実行する。ステップS44では、登録ボタンF4がクリックされたか否かを更新部302が確認する。
ステップS44において、登録ボタンF4がクリックされていないと判定した場合、プログラミング支援装置100は処理をステップS42に戻す。以後、登録ボタンF4がクリックされるまでは、状態データの入力に応じた状態入力画面F1の表示用データの更新が繰り返される。
ステップS44において、登録ボタンF4がクリックされたと判定した場合、プログラミング支援装置100はステップS45を実行する。ステップS45では、状態データ登録部306が、状態入力画面F1において入力されたデータを取得し、入力対象モデルに対応付けて環境データ記憶部111に書き込む。以上で状態データの登録手順が完了する。
(3)プログラミング支援条件の設定手順
続いて、上記ステップS03におけるプログラミング支援条件の設定手順を説明する。
続いて、上記ステップS03におけるプログラミング支援条件の設定手順を説明する。
(概要)
図23に示すように、プログラミング支援装置100は、まずステップS51を実行する。ステップS51では、リスト生成部405が、リスト表示エリアG2に表示するための作業ジョブのリストを生成し、画面データ生成部401に出力する。
図23に示すように、プログラミング支援装置100は、まずステップS51を実行する。ステップS51では、リスト生成部405が、リスト表示エリアG2に表示するための作業ジョブのリストを生成し、画面データ生成部401に出力する。
次に、プログラミング支援装置100はステップS52を実行する。ステップS52では、制約メニュー生成部406が、制約メニュー表示エリアG32に表示するための制約条件のリストを生成し、画面データ生成部401に出力する。
次に、プログラミング支援装置100はステップS53を実行する。ステップS53では、画面データ生成部401が、プランニング画面G1の表示用データを生成し、モニタ131に出力する。以後、プランニング画面G1への入力操作に応じ、プログラミング支援条件を設定する処理が開始され、プランニングボタンG37がクリックされるまで継続される(ステップS54)。プランニングボタンG37がクリックされると、プログラミング支援条件の設定手順が完了する。
以下、プログラミング支援条件の設定手順を、第一制約条件の設定手順、第二制約条件の設定手順、及び演算レベルの設定手順に分けて説明する。
(第一制約条件の設定手順)
図24に示すように、プログラミング支援装置100は、まずステップS61を実行する。ステップS61では、第一更新部402が、リスト表示エリアG2における作業ジョブの選択入力(例えばリスト要素G3のクリック)を待機する。
図24に示すように、プログラミング支援装置100は、まずステップS61を実行する。ステップS61では、第一更新部402が、リスト表示エリアG2における作業ジョブの選択入力(例えばリスト要素G3のクリック)を待機する。
次に、プログラミング支援装置100はステップS62を実行する。ステップS62では、リスト表示エリアG2において選択された作業ジョブ(以下、「選択ジョブ」という。)についての第一制約条件が、個別条件記憶部420に記憶されているか否かを条件読込部411が確認する。
ステップS62において、選択ジョブの第一制約条件が個別条件記憶部420に記憶されていると判定した場合、プログラミング支援装置100はステップS63を実行する。ステップS63では、条件読込部411が、個別条件記憶部420に記憶されている第一制約条件を読み込む。
次に、プログラミング支援装置100はステップS64を実行する。ステップS62において、選択ジョブの第一制約条件が個別条件記憶部420に記憶されていないと判定した場合、プログラミング支援装置100はステップS63を実行することなくステップS64を実行する。ステップS64では、第一更新部402が、選択ジョブの第一制約条件を入力可能とするように第一入力エリアG9の表示用データを更新する。
より具体的に、第一更新部402は、ステップS63において個別条件記憶部420から読み込まれた情報の有る項目については、当該情報を当該項目の入力部分に表示し、その他の項目についてはその入力部分を空欄にするように、第一入力エリアG9の表示用データを更新する。
次に、プログラミング支援装置100はステップS65を実行する。ステップS65では、第一制約条件を追加するための入力の有無を第一更新部402が確認する。ステップS65において、第一制約条件を追加するための入力が有ると判定した場合、プログラミング支援装置100はステップS66を実行する。ステップS66は、第一入力エリアG9への入力内容に基づいて第一制約条件を設定する処理を含む。具体的な処理内容については後述する。
次に、プログラミング支援装置100はステップS67を実行する。ステップS65において、第一制約条件を追加するための入力は無いと判定した場合、プログラミング支援装置100はステップS66を実行することなくステップS67を実行する。ステップS67では、条件登録ボタンG36がクリックされたか否かを条件登録部419が確認する。
ステップS67において、条件登録ボタンG36はクリックされていないと判定した場合、プログラミング支援装置100はステップS68を実行する。ステップS68では、リスト表示エリアG2において他の作業ジョブが選択されたか否かを第一更新部402が確認する。
ステップS68において、他の作業ジョブは選択されていないと判定した場合、プログラミング支援装置100は処理をステップS65に戻す。以後、条件登録ボタンG36がクリックされるか、リスト表示エリアG2において他の作業ジョブが選択されるまでは、第一入力エリアG9への入力に基づいて選択ジョブの第一制約条件を設定する処理が繰り返される。
ステップS68において、他の選択ジョブが選択されたと判定した場合、プログラミング支援装置100は処理をステップS62に戻し、新たに選択された作業ジョブについての第一制約条件の設定処理を開始する。
ステップS67において、条件登録ボタンG36がクリックされたと判定した場合、プログラミング支援装置100はステップS69を実行する。ステップS69では、条件登録部419が、第一入力エリアG9における第一制約条件の設定結果を個別条件記憶部420に書き込む。以上で第一制約条件の設定手順が完了する。
続いて、上記ステップS66における条件設定手順を説明する。図25に示すように、プログラミング支援装置100は、まずステップS81を実行する。ステップS81では、作業内容入力エリアG10の項目指定ボタンG11がクリックされたか否かを第一更新部402が確認する。
ステップS81において、項目指定ボタンG11がクリックされたと判定した場合、プログラミング支援装置100はステップS82を実行する。ステップS82では、項目指定ボタンG11応じた項目用の選択肢となる作業内容情報(例えば作業対象物等)のアイコンをアイコン選択エリアG12に表示するように、第一更新部402がリスト表示エリアG2の表示用データを更新する。
次に、プログラミング支援装置100はステップS83を実行する。ステップS83では、第一更新部402が、アイコン選択エリアG12におけるアイコンの選択入力を待機する。
次に、プログラミング支援装置100はステップS84を実行する。ステップS84では、アイコン選択エリアG12において選択されたアイコンを入力内容表示エリアG13に表示するように、第一更新部402が第一入力エリアG9の表示用データを更新する。
ステップS81において、項目指定ボタンG11はクリックされていないと判定した場合、プログラミング支援装置100はステップS85を実行する。ステップS85では、作業内容入力エリアG10の名称入力エリアG15へのテキスト入力の有無を判定する。
ステップS85において、名称入力エリアG15へのテキスト入力が有ると判定した場合、プログラミング支援装置100はステップS86を実行する。ステップS86では、入力された内容を名称入力エリアG15に表示するように、第一更新部402が第一入力エリアG9の表示用データを更新する。
ステップS85において、名称入力エリアG15へのテキスト入力は無いと判定した場合、プログラミング支援装置100はステップS87を実行する。ステップS87では、制約条件入力エリアG16の条件入力部G17において新規作成ボタンG18がクリックされたか否かを第一更新部402が確認する。
ステップS87において、新規作成ボタンG18がクリックされたと判定した場合、プログラミング支援装置100はステップS88を実行する。ステップS88は、第一制約条件として設定すべき条件を作成する処理を含む。具体的な処理内容については後述する。
ステップS84,S86,S88を実行した後、プログラミング支援装置100はステップS89を実行する。ステップS89では、第一条件設定部412が、第一入力エリアG9への入力に応じて第一制約条件を設定し、当該第一制約条件の対象となる作業ジョブの識別情報と対応付けて一時記憶用の条件バッファ415に書き込む。以上でステップS66が完了する。
ステップS87において、新規作成ボタンG18がクリックされていないと判定した場合、プログラミング支援装置100は、ステップS89を実行することなくステップS66を完了する。
続いて、上記ステップS88における条件作成手順を説明する。図26に示すように、プログラミング支援装置100は、まずステップS91を実行する。ステップS91では、オプション情報取得部410が、上記環境データ記憶部111から、環境モデルデータに含まれる物を特定する第一オプション情報を取得する。第一入力サポート部408が、第一オプション情報に基づいて作業対象物の選択肢を設定し、当該選択肢の表示用のデータを生成する。
次に、プログラミング支援装置100はステップS92を実行する。ステップS92では、第一更新部402が、条件作成画面H1を表示するように第一入力エリアG9の表示用データを更新する。この際に、第一更新部402は、第一入力サポート部408により生成されたデータを用いて、上記作業対象物の選択肢を入力ボックスH2にセットする。
次に、プログラミング支援装置100はステップS93を実行する。ステップS93では、第一更新部402が、入力ボックスH2における作業対象物の選択入力を待機する。
次に、プログラミング支援装置100はステップS94を実行する。ステップS94では、オプション情報取得部410が、入力ボックスH2に入力された作業対象物の状態を示す第二オプション情報を環境データ記憶部111から取得する。第二入力サポート部409が、第二オプション情報に基づいて状態指定条件の選択肢を設定し、当該選択肢の表示用のデータを生成する。第一更新部402が、第二入力サポート部409により生成されたデータを用いて、上記状態指定条件の選択肢を入力ボックスH4にセットする。
次に、プログラミング支援装置100は、ステップS95を実行する。ステップS95では、入力ボックスH3又は入力ボックスH4への入力の有無を第一更新部402が確認する。
ステップS95において、入力ボックスH3又は入力ボックスH4への入力が有ると判定した場合、プログラミング支援装置100はステップS96を実行する。ステップS96では、条件作成画面H1に入力内容を反映させるように、第一更新部402が第一入力エリアG9の表示用データを更新する。
次に、プログラミング支援装置100はステップS97を実行する。ステップS97では、作成ボタンH5がクリックされたか否かを第一更新部402が確認する。
ステップS97において、作成ボタンH5はクリックされていないと判定した場合、プログラミング支援装置100は処理をステップS95に戻す。以後、作成ボタンH5がクリックされるまで、入力ボックスH3又は入力ボックスH4への入力に応じた条件作成画面H1の表示内容の更新が繰り返される。
ステップS97において、作成ボタンH5がクリックされたと判定した場合、プログラミング支援装置100はステップS98を実行する。ステップS98では、第一更新部402が、条件作成画面H1において入力されたデータに従った条件を作成する。
次に、プログラミング支援装置100はステップS99を実行する。ステップS99では、第一更新部402が、ステップS98において作成した条件を表示部G19に表示するように、第一入力エリアG9の表示用データを更新する。以上でステップS88が完了する。
(第二制約条件の設定手順)
図27に示すように、プログラミング支援装置100は、まずステップS101を実行する。ステップS101では、第二入力エリアG20に作業ジョブを追加する入力の有無を第二更新部403が確認する。例えば、第二更新部403は、リスト表示エリアG2から第二入力エリアG20にリスト要素G3がドラッグされたか否かを確認する。
図27に示すように、プログラミング支援装置100は、まずステップS101を実行する。ステップS101では、第二入力エリアG20に作業ジョブを追加する入力の有無を第二更新部403が確認する。例えば、第二更新部403は、リスト表示エリアG2から第二入力エリアG20にリスト要素G3がドラッグされたか否かを確認する。
ステップS101において、リスト表示エリアG2から第二入力エリアG20にリスト要素G3がドラッグされたと判定した場合、プログラミング支援装置100はステップS103を実行する。ステップS103では、仮フロー生成部416が、第二入力エリアG20に表示される複数の作業ジョブの仮フローG23を生成する。仮フロー生成部416は、第二入力エリアG20における既存のフロー要素G24とドラッグ完了位置との関係に応じて作業ジョブの実行順序を設定し、これに従って仮フローG23を生成する。
次に、プログラミング支援装置100はステップS104を実行する。ステップS104では、第二更新部403が、ステップS103において生成された仮フローG23を表示し、仮フローG23における作業ジョブ間に第二制約条件を入力可能とするように第二入力エリアG20の表示用データを更新する。
ステップS101において、第二入力エリアG20に作業ジョブを追加する入力は無いと判定した場合、プログラミング支援装置100はステップS105を実行する。ステップS105では、第二入力エリアG20に二つ以上の作業ジョブが表示されているか否かを第二更新部403が確認する。
ステップS105において、第二入力エリアG20に二つ以上の作業ジョブが表示されていると判定した場合、プログラミング支援装置100はステップS106を実行する。ステップS106では、第二入力エリアG20に制約条件を追加する入力の有無を第二更新部403が確認する。
ステップS106において、制約条件の追加入力が有ると判定した場合、プログラミング支援装置100はステップS107を実行する。ステップS107は、制約条件の追加を仮フローG23の表示に反映させるように、第二更新部403が第二入力エリアG20の表示用データを更新する。例えば、第二更新部403は、制約メニュー表示エリアG32から第二入力エリアG20にメニュー要素G33がドラッグされ、二つのフロー要素G24間でドラッグが完了した場合に、当該二つのフロー要素G24間にメニュー要素G33の制約条件を挿入するように、第二入力エリアG20の表示用データを更新する。
次に、プログラミング支援装置100はステップS108を実行する。ステップS108では、第二条件設定部417が、第二入力エリアG20において作業ジョブ間に入力された制約条件に基づいて第二制約条件を設定する。
ステップS104,S108を実行した後、プログラミング支援装置100はステップS109を実行する。ステップS105において、第二入力エリアG20に二つ以上の作業ジョブは表示されていないと判定した場合、及びステップS106において制約条件を追加する入力は無いと判定した場合、プログラミング支援装置100はステップS104,S108を実行することなくステップS109を実行する。ステップS109では、条件登録ボタンG36がクリックされたか否かを条件登録部419が確認する。
ステップS109において、条件登録ボタンG36はクリックされていないと判定した場合、プログラミング支援装置100は処理をステップS101に戻す。以後、条件登録ボタンG36がクリックされるまでは、第二入力エリアG20への入力に基づいて第二制約条件を設定する処理が繰り返される。
ステップS109において、条件登録ボタンG36がクリックされたと判定した場合、プログラミング支援装置100はステップS110を実行する。ステップS110では、条件登録部419が、第二条件設定部417により設定された第二制約条件を、当該第二制約条件の対象となる作業ジョブと対応付けてジョブ間条件記憶部422に書き込む。また、条件登録部419は、仮フローG23の複数のフロー要素G24にそれぞれ対応する複数の作業ジョブを実行対象のジョブとして実行対象記憶部421に書き込む。以上で第二制約条件の設定手順が完了する。
(演算レベルの設定手順)
図28に示すように、プログラミング支援装置100は、まずステップS121を実行する。ステップS121では、第三入力エリアG34に演算レベルが入力されたか否かを第三更新部404が確認する。
図28に示すように、プログラミング支援装置100は、まずステップS121を実行する。ステップS121では、第三入力エリアG34に演算レベルが入力されたか否かを第三更新部404が確認する。
ステップS121において、第三入力エリアG34に演算レベルが入力されたと判定した場合、プログラミング支援装置100はステップS122を実行する。ステップS122では、第三更新部404が、第三入力エリアG34への入力内容を反映させるように、第三入力エリアG34の表示用データを更新する。例えば、第三更新部404は、第三入力エリアG34においてクリックされたラジオボタンG35をオンにするように表示用データを更新する。
次に、プログラミング支援装置100はステップS123を実行する。ステップS123では、演算レベル設定部418が、上記演算レベルを、第三入力エリアG34への入力に応じて設定する。
次に、プログラミング支援装置100はステップS124を実行する。ステップS121において、第三入力エリアG34に演算レベルは入力されていないと判定した場合、プログラミング支援装置100はステップS122,S123を実行することなくステップS124を実行する。ステップS124では、条件登録ボタンG36がクリックされたか否かを条件登録部419が確認する。
ステップS124において、条件登録ボタンG36はクリックされていないと判定した場合、プログラミング支援装置100は処理をステップS121に戻す。以後、条件登録ボタンG36がクリックされるまでは、第三入力エリアG34への入力に基づいて演算レベルを設定する処理が繰り返される。
ステップS124において、条件登録ボタンG36がクリックされたと判定した場合、プログラミング支援装置100はステップS125を実行する。ステップS125では、条件登録部419が、演算レベル設定部418により設定された演算レベルを演算条件記憶部423に書き込む。以上で演算レベルの設定手順が完了する。
(4)プログラム生成手順
図29に示すように、プログラミング支援装置100は、まずステップS131を実行する。ステップS131では、フロー調節部503が、プランニングボタンG37のクリックを待機する。
図29に示すように、プログラミング支援装置100は、まずステップS131を実行する。ステップS131では、フロー調節部503が、プランニングボタンG37のクリックを待機する。
次に、プログラミング支援装置100はステップS132を実行する。図35を参照して後でさらに説明するように、ステップS132では、プランニング支援部501が、第一制約条件及び第二制約条件を満たす実行フローを生成する。
次に、プログラミング支援装置100はステップS134を実行する。ステップS134では、つなぎジョブ生成部506が、フローバッファ508に記憶された実行フローと、パス情報取得部505により取得された第一パス情報と、環境データ記憶部111に記憶された環境モデルデータとに基づいて、作業ジョブ間におけるロボット2の動作パスを規定する第二パス情報を生成する。
次に、プログラミング支援装置100はステップS135を実行する。ステップS135では、フロー評価部507が、第一制約条件及び第二制約条件とは異なる評価条件に基づいて実行フロー、第一パス情報及び第二パス情報を評価する。例えばフロー評価部507は、上記評価条件に基づいて、実行フロー、第一パス情報及び第二パス情報の評価値(例えば上記実行時間又は消費電力等)を導出する。
次に、プログラミング支援装置100はステップS136を実行する。ステップS136では、フロー評価部507が、実行フローの採用可否を判定する。例えばフロー評価部507は、上記評価値が合格ラインに達している場合に実行フローを採用可とし、当該評価値が合格ラインに達していない場合に実行フローを採用不可とする。
ステップS136において、実行フローを採用不可と判定した場合、プログラミング支援装置100は処理をステップS132に戻す。以後、実行フローが採用可となるまで、実行フローの生成と、上記評価値の算出とが繰り返される。
ステップS136において、上記評価値が採用可であると判定した場合、プログラミング支援装置100はステップS137を実行する。ステップS137では、更新部502が、採用可の実行フローを結果出力部G29に表示するように、第一入力エリアG9の表示用データを更新する。
次に、プログラミング支援装置100はステップS138を実行する。ステップS138では、プログラム生成部510が、ステップS131~S136で生成された実行フローに基づいて、ロボット2の動作プログラムを生成する。
次に、プログラミング支援装置100はステップS139を実行する。ステップS139では、保存ボタンG38がクリックされたか否かをプログラム登録部511が確認する。
ステップS139において、保存ボタンG38はクリックされていないと判定した場合、プログラミング支援装置100はステップS140を実行する。ステップS140では、プランニングボタンG37が再クリックされたか否かをフロー調節部503が確認する。
ステップS140において、プランニングボタンG37は再クリックされていないと判定した場合、プログラミング支援装置100は処理をステップS139に戻す。
ステップS140において、プランニングボタンG37が再クリックされたと判定した場合、プログラミング支援装置100は処理をステップS132に戻す。これにより、動作プログラムの生成が再度実行される。
ステップS139において、保存ボタンG38がクリックされたと判定した場合、プログラミング支援装置100はステップS141を実行する。ステップS141では、プログラム登録部511が、ステップS138において生成された動作プログラムを動作プログラム記憶部112に書き込む。以上で動作プログラムの生成手順が完了する。
続いて、図35を参照して、上記ステップS132において、第一制約条件及び第二制約条件を満たす実行フローを生成する手順を具体的に例示する。
ステップS201では、フロー調節部503が、タイミング条件を満たすように実行フローを生成する。例えばフロー調節部503は、複数の実行対象の作業ジョブを、タイミング条件に応じてグループ分けする。具体的には、タイミング条件ごとに、当該タイミング条件に関連する全ての作業ジョブを、当該タイミング条件を満たす状態でグループ化する。タイミング条件に一切関連しない作業ジョブは、単独で一グループを構成することとなる。グループ分けの結果、仮に、複数の実行対象の作業ジョブが一つしかグループを含まなかった場合、タイミング条件を満たす実行フローは一つしか存在しないこととなる。複数の実行対象の作業ジョブが複数のグループに分かれた場合、フロー調節部503は、当該複数のグループ同士をランダムに並べて実行フローを生成する。
次に、プログラミング支援装置100はステップS202,S203,S204を実行する。ステップS202では、判定部504が、第一制約条件の確認対象の作業ジョブを選択する。ステップS203では、実行フローにおいて確認対象の作業ジョブよりも前に位置する作業ジョブの実行順序に基づいて、判定部504が確認対象の作業ジョブの実行タイミングにおける環境状態を決定する。例えば、ジョブ02(図32~34)が作業フローにおける確認対象である場合、判定部504は、ジョブ01がジョブ02の前に位置し、ジョブ03がジョブ02の後に位置するから、ジョブ02の実行タイミングにおいて蓋12は開いていると決定する。ステップS204では、ステップS203において決定した環境状態が第一制約条件を満たしているか否かを判定部504が確認する。
ステップS204において、実行環境が第一制約条件を満たしていないと判定した場合、プログラミング支援装置100はステップS205を実行する。ステップS205では、フロー調節部503が、タイミング条件を満たすように実行フローを調節する。例えばフロー調節部503は、タイミング条件に基づいてグループ化された上記複数のグループ間の順序を変更する。その後、プログラミング支援装置100は処理をステップS202に戻す。
ステップS204において、実行環境が第一制約条件を満たしていると判定した場合、プログラミング支援装置100はステップS206を実行する。ステップS206では、実行フローの全ての作業ジョブについて第一制約条件の確認が完了したか否かを判定部504が確認する。
ステップS206において、未確認の作業ジョブが残っていると判定した場合、プログラミング支援装置100はステップS207を実行する。ステップS207では、判定部504が未確認の作業ジョブのいずれかを選択する。その後、プログラミング支援装置100は処理をステップS202に戻す。以後、全ての作業ジョブが環境条件を満たすと判定されるまで、プログラミング支援装置100はステップS202~S207を繰り返す。
ステップS206において、全ての作業ジョブについて第一制約条件の確認が完了したと判定した場合、プログラミング支援装置100は実行フローの生成処理を完了する。
(5)シミュレーション手順
図30に示すように、プログラミング支援装置100は、まずステップS151を実行する。ステップS151では、画面データ生成部601が、シミュレーション画面K1の表示用データを生成し、モニタ131に出力する。
図30に示すように、プログラミング支援装置100は、まずステップS151を実行する。ステップS151では、画面データ生成部601が、シミュレーション画面K1の表示用データを生成し、モニタ131に出力する。
次に、プログラミング支援装置100はステップS152を実行する。ステップS152では、プログラム選択ボタンK3がクリックされたか否かを更新部602が確認する。
ステップS152において、プログラム選択ボタンK3がクリックされたと判定した場合、プログラミング支援装置100はステップS153を実行する。ステップS153では、プログラム設定部603が、動作プログラム記憶部112を参照して動作プログラムのリストを生成する。更新部602が、当該リストをリスト表示エリアL2に含むプログラム選択画面L1を表示するように、環境構築画面B1の表示用データを更新する。
次に、プログラミング支援装置100はステップS154を実行する。ステップS154では、プログラム設定部603が、プログラム選択画面L1における動作プログラムの選択入力を待機する。
次に、プログラミング支援装置100はステップS155を実行する。ステップS155では、プログラム設定部603が、プログラム選択画面L1において選択された動作プログラムを、シミュレーション対象の動作プログラムに設定する。
ステップS152において、プログラム選択ボタンK3はクリックされていないと判定した場合、プログラミング支援装置100はステップS156を実行する。ステップS156では、シミュレーション対象の動作プログラムが設定済であるか否かをシミュレーション実行部604が確認する。
ステップS156において、シミュレーション対象の動作プログラムは設定済であると判定した場合、プログラミング支援装置100はステップS157を実行する。ステップS157では、シミュレーション実行ボタンK4がクリックされたか否かを更新部602が確認する。
ステップS157において、シミュレーション実行ボタンK4がクリックされたと判定した場合、プログラミング支援装置100はステップS158を実行する。ステップS158では、シミュレーション実行部604が、環境データ記憶部111に記憶された環境モデルデータにより特定されるシミュレーション環境下において、シミュレーション対象の動作プログラムに従ってロボット2のモデルを動作させる。
次に、プログラミング支援装置100はステップS159を実行する。ステップS159では、動画データ生成部605が、シミュレーション実行部604によるシミュレーション結果に従って、ロボット2のモデルの動画データを生成する。更新部602が、当該動画データをリスト表示エリアL2に表示するように描画エリアK2の表示用データを更新する。
ステップS155,S159を実行した後、プログラミング支援装置100はステップS160を実行する。ステップS156において、シミュレーション対象の動作プログラムが未設定であると判定した場合、及びステップS15においてシミュレーション実行ボタンK4がクリックされていないと判定した場合も、プログラミング支援装置100はステップS160を実行する。ステップS160では、終了ボタンK5がクリックされたか否かを更新部602が確認する。
ステップS160において、終了ボタンK5がクリックされていないと判定した場合、プログラミング支援装置100は処理をステップS152に戻す。
ステップS160において、終了ボタンK5がクリックされたと判定した場合、プログラミング支援装置100は、シミュレーション画面K1をクローズして処理を終了する。
〔本実施形態の効果〕
以上に説明したように、プログラミング支援装置100は、ロボット2の動作パターンを規定する複数の作業ジョブを記憶する作業ジョブ記憶部114と、複数の作業ジョブのいずれかについて、ロボット2の動作環境を指定する環境条件を、ユーザインタフェース130への入力に応じて設定する第一条件設定部412と、複数の作業ジョブのうち、ロボット2に実行させる複数の実行対象の作業ジョブを、ユーザインタフェース130への入力に応じて設定する第二条件設定部417と、第二条件設定部417により設定された複数の実行対象の作業ジョブの実行順序を定めた実行フローにおいて、少なくとも一つの作業ジョブが環境条件を満たすか否かを、当該実行順序に基づいて判定するプランニング支援部501と、を備える。
以上に説明したように、プログラミング支援装置100は、ロボット2の動作パターンを規定する複数の作業ジョブを記憶する作業ジョブ記憶部114と、複数の作業ジョブのいずれかについて、ロボット2の動作環境を指定する環境条件を、ユーザインタフェース130への入力に応じて設定する第一条件設定部412と、複数の作業ジョブのうち、ロボット2に実行させる複数の実行対象の作業ジョブを、ユーザインタフェース130への入力に応じて設定する第二条件設定部417と、第二条件設定部417により設定された複数の実行対象の作業ジョブの実行順序を定めた実行フローにおいて、少なくとも一つの作業ジョブが環境条件を満たすか否かを、当該実行順序に基づいて判定するプランニング支援部501と、を備える。
作業ジョブごとの実行上の制約条件である環境条件は、作業ジョブ同士の関係についての制約条件に比較して高い普遍性を有する傾向がある。実際に、環境条件は、作業ジョブを含んで構成される動作プログラムによらず当該作業ジョブに適用され得る一方、作業ジョブ同士の関係についての制約条件は、動作プログラムごとに特有となり得る。このため、作業ジョブの実行フローに対する条件を環境条件として設定可能とすることで、既登録内容を流用し易くなる。言い換えれば、少なくとも一部の条件を再利用可能なデータとすることができる。従って、プログラミングに際して既登録の動作プログラムを活かし易くなるので、動作プログラミングの負担軽減に有効である。
プランニング支援部501は、実行フローのいずれか一つの作業ジョブの実行タイミングにおける環境状態を、当該実行フローの他の作業ジョブにおけるロボット2の動作内容と、当該実行フローの実行順序とに基づいて特定し、当該環境状態が当該一つの作業ジョブの環境条件を満たすか否かを判定してもよい。この場合、実行順序により特定可能な環境状態と、環境条件とを比較することで、実行フローにおいて、少なくとも一つの作業ジョブが環境条件を満たすか否かを容易に判定することができる。
実行フローが第一作業ジョブ及び第二作業ジョブを順に含む場合に、プランニング支援部501は、少なくとも第一作業ジョブにおけるロボットの動作内容に基づいて第二作業ジョブの実行タイミングにおける環境状態を特定し、当該環境状態が第二作業ジョブの環境条件を満たすか否かを判定してもよい。この場合、作業ジョブが環境条件を満たすか否かを更に容易に判定することができる。
実行フローが第一作業ジョブ、第二作業ジョブ及び第三作業ジョブを順に含む場合に、プランニング支援部501は、少なくとも第一作業ジョブにおけるロボットの動作内容に基づいて第二作業ジョブの実行タイミングにおける環境状態を特定し、当該環境状態を少なくとも第二作業ジョブにおけるロボットの動作内容に基づいて更新して第三作業ジョブの実行タイミングにおける環境状態を特定し、当該環境状態が第三作業ジョブの環境条件を満たすか否かを判定してもよい。この場合、順に並ぶ作業ジョブに応じたロボット2の動作内容に従って、環境状態を順次更新することによって、作業ジョブが環境条件を満たすか否かを更に容易に判定することができる。
第一作業ジョブにより規定される動作パターンが、作業対象物を物理的に操作する動作を含み、第二作業ジョブの環境条件が、当該作業対象物の状態を指定する条件を含む場合に、プランニング支援部501は、第一作業ジョブに従ってロボットが動作した後の当該作業対象物の状態を第二作業ジョブの実行タイミングにおける環境状態として特定し、当該環境状態が第二作業ジョブの環境条件を満たすか否かを判定してもよい。この場合、作業ジョブが環境条件を満たすか否かを更に容易に判定することができる。
プランニング支援部501は、実行フローのいずれか一つの作業ジョブの環境条件と、当該実行フローの他の作業ジョブにおけるロボット2の動作内容とに基づいて、当該一つの作業ジョブが当該環境条件を満たすために、当該一つの作業ジョブと当該他の作業ジョブとの間に必要とされる順序条件を生成し、当該実行フローの実行順序が当該順序条件を満たすか否かを判定してもよい。この場合、環境条件を順序条件に置き換えることによって、作業ジョブが環境条件を満たすか否かを容易に判定することができる。
実行フローが、作業対象物を物理的に操作する動作を含む動作パターンを規定する第一作業ジョブと、当該作業対象物の状態を指定する条件を含む環境条件が設定された第二作業ジョブとを含む場合に、プランニング支援部501は、第一作業ジョブに従ってロボットが動作した後の当該作業対象物の状態と、第二作業ジョブの環境条件が指定する当該作業対象物の状態との関係に基づいて、第一作業ジョブと第二作業ジョブとの間の順序条件を生成してもよい。この場合、作業ジョブが環境条件を満たすか否かを更に容易に判定することができる。
第二条件設定部417は、ユーザインタフェース130への入力に基づいて、少なくとも二つの実行対象の作業ジョブの間に、実行タイミングの関係を指定するタイミング条件を更に設定するように構成され、プランニング支援部501は、タイミング条件を満たすように実行順序を定めた実行フローにおいて、少なくとも一つの作業ジョブが環境条件を満たすか否かを当該実行順序に基づいて判定してもよい。この場合、環境条件の入力のみでなく、タイミング条件の入力も可能とする柔軟なユーザインタフェースによって、使い勝手を向上させることができる。また、環境条件の少なくとも一部がタイミング条件として入力されることによって、環境条件を満たすか否かの判定における演算負荷が軽減される。
プログラミング支援装置100は、環境条件を入力するための第一入力エリアG9と、複数の実行対象の作業ジョブを選択するための第二入力エリアG20と、を含むプランニング画面G1をユーザインタフェース130に表示するためのデータを生成する画面データ生成部401を更に備えてもよい。この場合、既登録内容を流用できる部分と、新たな条件設定が必要となる部分との切り分けが更に容易となる。
プログラミング支援装置100は、ユーザインタフェース130への入力に応じて第一入力エリアG9の表示用データを更新する第一更新部402と、ユーザインタフェース130への入力に応じて第二入力エリアG20の表示用データを更新する第二更新部403と、を更に備えてもよい。画面データ生成部401は、複数の作業ジョブのリストを示すリスト表示エリアG2を更に含むプランニング画面G1の表示用データを生成してもよい。第一更新部402は、リスト表示エリアG2において選択された作業ジョブの環境条件を入力可能とするように第一入力エリアG9の表示用データを更新し、第二更新部403は、リスト表示エリアG2において選択された複数の作業ジョブを表示して当該複数の作業ジョブ間のタイミング条件を入力可能とするように第二入力エリアG20用のデータを更新してもよい。この場合、環境条件の入力対象となる作業ジョブの選択、及びタイミング条件の入力対象となる作業ジョブの選択の両方が容易となる。
プログラミング支援装置100は、第二入力エリアG20に表示される複数の作業ジョブの仮フローを生成する仮フロー生成部416を更に備えてもよい。第二更新部403は、仮フローを表示し、仮フローにおける作業ジョブ間にタイミング条件を入力可能とするように第二入力エリアG20の表示用データを更新してもよい。この場合、仮フローを設定した上で、そのうち変更不可の部分を指定する直感的な操作手順で第二制約条件の入力が可能となる。このため、操作者による第二制約条件の入力が更に容易となる。
環境条件は、作業ジョブの作業対象物の状態を指定する状態指定条件を含んでもよい。第一条件設定部412は、第一入力エリアG9への入力に基づいて作業対象物を設定する対象物設定部413と、第一入力エリアG9への入力に基づいて状態指定条件を設定する状態設定部414と、を有してもよい。この場合、操作者の判断に迷いの生じ難い作業対象物及び状態指定条件の入力により第一制約条件設定が可能となるので、操作者による第一制約条件の入力が更に容易となる。
プログラミング支援装置100は、作業対象物の選択肢を設定し、当該選択肢の表示用のデータを生成する第一入力サポート部408と、状態の指定対象となる作業対象物に応じて、状態指定条件の選択肢を設定し、当該選択肢の表示用のデータを生成する第二入力サポート部409とを更に備えてもよい。この場合、作業対象物の入力に応じて、状態指定条件の入力がサポートされるので、操作者による第一制約条件の入力が更に容易になる。
プログラミング支援装置100は、ロボット2の動作シミュレーション用の環境モデルデータを記憶する環境データ記憶部111から、環境モデルデータに含まれる物を特定する第一オプション情報と、当該物の状態を示す第二オプション情報とを取得するオプション情報取得部410を更に備えてもよい。第一入力サポート部408は、第一オプション情報に基づいて作業対象物の選択肢を設定してもよい。第二入力サポート部409は、第二オプション情報に基づいて状態指定条件の選択肢を設定してもよい。この場合、環境モデルデータを利用して選択肢を設定することで、操作者による第一制約条件の入力が更に容易となる。
画面データ生成部401は、リスト表示エリアG2が第一入力エリアG9及び第二入力エリアG20の間に配置されるようにプランニング画面G1の表示用データを生成してもよい。この場合、環境条件の入力対象となる作業ジョブの選択、及びタイミング条件の入力対象となる作業ジョブの選択に共用されるリスト表示エリアG2を、第一入力エリアG9及び第二入力エリアG20の間に配置することで、操作者による作業性が更に高められる。
プログラミング支援装置100は、少なくとも環境条件を作業ジョブに対応付けて条件記憶部に登録する条件登録部419と、条件記憶部から環境条件を読み込む条件読込部411とを更に備えてもよい。この場合、既登録の制約条件を読み込み可能とすることで、既登録の動作プログラムを更に活かし易くなる。
プランニング支援部501は、実行フローにおいて少なくとも一つの作業ジョブが環境条件を満たすか否かを、当該実行フローの実行順序に基づいて判定する判定部504と、実行フローにおいていずれかの作業ジョブが環境条件を満たしていないと判定した場合に、タイミング条件を満たすように実行順序を変更するフロー調節部503と、環境条件及びタイミング条件とは異なる評価条件に基づいて当該実行フローを評価し、評価結果に基づいて当該実行フローの採用可否を判定するフロー評価部507と、を有してもよい。この場合、制約条件とは異なる評価条件に基づく評価プロセスが加えられることで、より信頼性の高いプログラミング支援が可能である。
プランニング支援部501は、実行フローと、ロボット2の動作シミュレーション用の環境モデルデータとに基づいて、作業ジョブ間におけるロボット2の動作パターンを規定するつなぎジョブを生成するつなぎジョブ生成部506を更に有し、フロー評価部507は、実行フロー、複数の実行対象の作業ジョブ及び少なくとも一つのつなぎジョブを評価条件に基づいて評価し、評価結果に基づいて実行フローの採用可否を判定してもよい。この場合、作業ジョブ間におけるロボットの動作パターンをも考慮して、実行フローの採用可否が判定されるので、より信頼性の高いプログラミング支援が可能である。
実行フローの採用可否を判定するための基準を調節する演算レベルを、ユーザインタフェース130への入力に応じて設定する演算レベル設定部418を更に備えてもよい。この場合、プログラミング支援の速度及び信頼性のバランスを、ユーザニーズに応じて調節可能である。
以上、実施形態について説明したが、本発明は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変形が可能である。例えば、プログラミング支援装置100は、少なくとも条件設定モジュール400及びプログラミングモジュール500を有していればよく、メインモジュール200、環境構築モジュール300及びシミュレーションモジュール600を有しなくてもよい。
上記実施形態に関し、以下を付記する。
(付記1)
ロボットに実行させる複数の作業ジョブについて、前記作業ジョブごとの実行上の制約条件である第一制約条件を、ユーザインタフェースへの入力に応じて設定する第一条件設定部と、
前記作業ジョブ同士の関係についての制約条件である第二制約条件を、前記ユーザインタフェースへの入力に応じて設定する第二条件設定部と、
前記第一制約条件及び前記第二制約条件に基づいて、少なくとも一つの前記作業ジョブの実行タイミングをチェックするプランニング支援部と、を備えるプログラミング支援装置。
(付記2)
前記第一制約条件を入力するための第一入力エリア及び前記第二制約条件を入力するための第二入力エリアを含む入力画面を前記ユーザインタフェースに表示するためのデータを生成する画面データ生成部を更に備える、付記1記載のプログラミング支援装置。
(付記3)
前記ユーザインタフェースへの入力に応じて前記第一入力エリアの表示用データを更新する第一更新部と、
前記ユーザインタフェースへの入力に応じて前記第二入力エリアの表示用データを更新する第二更新部と、を更に備え、
前記画面データ生成部は、前記複数の作業ジョブのリストを示すリスト表示エリアを更に含む前記入力画面の表示用データを生成し、
前記第一更新部は、前記リスト表示エリアにおいて選択された前記作業ジョブの前記第一制約条件を入力可能とするように前記第一入力エリアの表示用データを更新し、
前記第二更新部は、前記リスト表示エリアにおいて選択された複数の前記作業ジョブを表示して当該複数の作業ジョブ間の前記第二制約条件を入力可能とするように前記第二入力エリアの表示用データを更新する、付記2記載のプログラミング支援装置。
(付記4)
前記第二入力エリアに表示される前記複数の作業ジョブの仮フローを生成する仮フロー生成部を更に備え、
前記第二更新部は、前記仮フローを表示し、前記仮フローにおける前記作業ジョブ間に前記第二制約条件を入力可能とするように前記第二入力エリアの表示用データを更新する、付記3記載のプログラミング支援装置。
(付記5)
前記第一制約条件は、前記作業ジョブの作業対象物の状態を指定する状態指定条件を含み、
前記第一条件設定部は、
前記第一入力エリアへの入力に基づいて前記作業対象物を設定する対象物設定部と、
前記第一入力エリアへの入力に基づいて前記状態指定条件を設定する状態設定部と、を有する、付記3又は4記載のプログラミング支援装置。
(付記6)
前記作業対象物の選択肢を設定し、当該選択肢の表示用のデータを生成する第一入力サポート部と、
前記状態の指定対象となる前記作業対象物に応じて、前記状態指定条件の選択肢を設定し、当該選択肢の表示用のデータを生成する第二入力サポート部とを更に備える、付記5記載のプログラミング支援装置。
(付記7)
前記ロボットの動作シミュレーション用の環境データを記憶する環境データ記憶部から、前記環境データに含まれる物を特定する第一オプション情報と、当該物の状態を示す第二オプション情報とを取得するオプション情報取得部を更に備え、
前記第一入力サポート部は、前記第一オプション情報に基づいて前記作業対象物の選択肢を設定し、
前記第二入力サポート部は、前記第二オプション情報に基づいて前記状態指定条件の選択肢を設定する、付記6記載のプログラミング支援装置。
(付記8)
前記画面データ生成部は、前記リスト表示エリアが前記第一入力エリア及び前記第二入力エリアの間に配置されるように前記入力画面の表示用データを生成する、付記7記載のプログラミング支援装置。
(付記9)
前記第一制約条件及び前記第二制約条件の少なくとも一方を条件記憶部に登録する条件登録部と、
前記条件記憶部から前記第一制約条件及び前記第二制約条件の少なくとも一方を読み込む条件読込部とを更に備える、付記2~8のいずれか一項記載のプログラミング支援装置。
(付記10)
前記プランニング支援部は、前記実行タイミングのチェック結果に基づいて、前記複数の作業ジョブの実行フローを生成することを更に実行する、付記1~9のいずれか一項記載のプログラミング支援装置。
(付記11)
少なくとも一つの前記作業ジョブについて、前記ロボットの動作パスを規定する第一パス情報を取得するパス情報取得部を更に備え、
前記プランニング支援部は、
前記第一制約条件及び前記第二制約条件に基づいて、少なくとも一つの前記作業ジョブの実行タイミングをチェックするタイミングチェック部と、
前記実行タイミングのチェック結果に基づいて、前記第一制約条件及び前記第二制約条件を満たすように前記実行フローを生成するフロー生成部と、
前記第一制約条件及び前記第二制約条件とは異なる評価条件に基づいて前記実行フロー及び前記第一パス情報を評価し、評価結果に基づいて前記実行フローの採用可否を判定するフロー評価部と、を有する、付記10記載のプログラミング支援装置。
(付記12)
前記プランニング支援部は、
前記実行フローと、前記第一パス情報と、前記ロボットの動作シミュレーション用の環境データとに基づいて、前記作業ジョブ間における前記ロボットの動作パスを規定する第二パス情報を生成するパス生成部を更に有し、
前記フロー評価部は、前記実行フロー、前記第一パス情報及び前記第二パス情報を前記評価条件に基づいて評価し、評価結果に基づいて前記実行フローの採用可否を判定する、付記11記載のプログラミング支援装置。
(付記13)
前記実行フローの採用可否を判定するための基準を調節する演算レベルを、ユーザインタフェースへの入力に応じて設定する演算レベル設定部を更に備える、付記11又は12記載のプログラミング支援装置。
(付記14)
前記プランニング支援部により生成された前記実行フローに基づいて、前記ロボットの動作プログラムを生成するプログラム生成部を更に備える、付記10~13のいずれか一項記載のプログラミング支援装置。
(付記15)
付記14記載のプログラミング支援装置と、
前記ロボットと、
前記プログラム生成部により生成された前記動作プログラムに従って前記ロボットを制御するコントローラと、を備えるロボットシステム。
(付記16)
プログラミング支援装置により実行される方法であって、
ロボットに実行させる複数の作業ジョブについて、前記作業ジョブごとの実行上の制約条件である第一制約条件を、ユーザインタフェースへの入力に応じて設定することと、
前記作業ジョブ同士の関係についての制約条件である第二制約条件を、前記ユーザインタフェースへの入力に応じて設定することと、
前記第一制約条件及び前記第二制約条件に基づいて、少なくとも一つの前記作業ジョブの実行タイミングをチェックすることと、を含むプログラミング支援方法。
(付記17)
プログラミング支援装置により実行されるプログラム生成方法であって、
ロボットに実行させる複数の作業ジョブについて、前記作業ジョブごとの実行上の制約条件である第一制約条件を、ユーザインタフェースへの入力に応じて設定することと、
前記作業ジョブ同士の関係についての制約条件である第二制約条件を、前記ユーザインタフェースへの入力に応じて設定することと、
少なくとも一つの前記作業ジョブについて、前記ロボットの動作パスを規定する第一パス情報を取得することと、
前記第一制約条件及び前記第二制約条件に基づいて、少なくとも一つの前記作業ジョブの実行タイミングをチェックすることと、
前記実行タイミングのチェック結果に基づいて、前記第一制約条件及び前記第二制約条件を満たすように前記複数の作業ジョブの実行フローを生成することと、
前記実行フローに基づいて、前記ロボットの動作プログラムを生成することと、を含むプログラム生成方法。
(付記1)
ロボットに実行させる複数の作業ジョブについて、前記作業ジョブごとの実行上の制約条件である第一制約条件を、ユーザインタフェースへの入力に応じて設定する第一条件設定部と、
前記作業ジョブ同士の関係についての制約条件である第二制約条件を、前記ユーザインタフェースへの入力に応じて設定する第二条件設定部と、
前記第一制約条件及び前記第二制約条件に基づいて、少なくとも一つの前記作業ジョブの実行タイミングをチェックするプランニング支援部と、を備えるプログラミング支援装置。
(付記2)
前記第一制約条件を入力するための第一入力エリア及び前記第二制約条件を入力するための第二入力エリアを含む入力画面を前記ユーザインタフェースに表示するためのデータを生成する画面データ生成部を更に備える、付記1記載のプログラミング支援装置。
(付記3)
前記ユーザインタフェースへの入力に応じて前記第一入力エリアの表示用データを更新する第一更新部と、
前記ユーザインタフェースへの入力に応じて前記第二入力エリアの表示用データを更新する第二更新部と、を更に備え、
前記画面データ生成部は、前記複数の作業ジョブのリストを示すリスト表示エリアを更に含む前記入力画面の表示用データを生成し、
前記第一更新部は、前記リスト表示エリアにおいて選択された前記作業ジョブの前記第一制約条件を入力可能とするように前記第一入力エリアの表示用データを更新し、
前記第二更新部は、前記リスト表示エリアにおいて選択された複数の前記作業ジョブを表示して当該複数の作業ジョブ間の前記第二制約条件を入力可能とするように前記第二入力エリアの表示用データを更新する、付記2記載のプログラミング支援装置。
(付記4)
前記第二入力エリアに表示される前記複数の作業ジョブの仮フローを生成する仮フロー生成部を更に備え、
前記第二更新部は、前記仮フローを表示し、前記仮フローにおける前記作業ジョブ間に前記第二制約条件を入力可能とするように前記第二入力エリアの表示用データを更新する、付記3記載のプログラミング支援装置。
(付記5)
前記第一制約条件は、前記作業ジョブの作業対象物の状態を指定する状態指定条件を含み、
前記第一条件設定部は、
前記第一入力エリアへの入力に基づいて前記作業対象物を設定する対象物設定部と、
前記第一入力エリアへの入力に基づいて前記状態指定条件を設定する状態設定部と、を有する、付記3又は4記載のプログラミング支援装置。
(付記6)
前記作業対象物の選択肢を設定し、当該選択肢の表示用のデータを生成する第一入力サポート部と、
前記状態の指定対象となる前記作業対象物に応じて、前記状態指定条件の選択肢を設定し、当該選択肢の表示用のデータを生成する第二入力サポート部とを更に備える、付記5記載のプログラミング支援装置。
(付記7)
前記ロボットの動作シミュレーション用の環境データを記憶する環境データ記憶部から、前記環境データに含まれる物を特定する第一オプション情報と、当該物の状態を示す第二オプション情報とを取得するオプション情報取得部を更に備え、
前記第一入力サポート部は、前記第一オプション情報に基づいて前記作業対象物の選択肢を設定し、
前記第二入力サポート部は、前記第二オプション情報に基づいて前記状態指定条件の選択肢を設定する、付記6記載のプログラミング支援装置。
(付記8)
前記画面データ生成部は、前記リスト表示エリアが前記第一入力エリア及び前記第二入力エリアの間に配置されるように前記入力画面の表示用データを生成する、付記7記載のプログラミング支援装置。
(付記9)
前記第一制約条件及び前記第二制約条件の少なくとも一方を条件記憶部に登録する条件登録部と、
前記条件記憶部から前記第一制約条件及び前記第二制約条件の少なくとも一方を読み込む条件読込部とを更に備える、付記2~8のいずれか一項記載のプログラミング支援装置。
(付記10)
前記プランニング支援部は、前記実行タイミングのチェック結果に基づいて、前記複数の作業ジョブの実行フローを生成することを更に実行する、付記1~9のいずれか一項記載のプログラミング支援装置。
(付記11)
少なくとも一つの前記作業ジョブについて、前記ロボットの動作パスを規定する第一パス情報を取得するパス情報取得部を更に備え、
前記プランニング支援部は、
前記第一制約条件及び前記第二制約条件に基づいて、少なくとも一つの前記作業ジョブの実行タイミングをチェックするタイミングチェック部と、
前記実行タイミングのチェック結果に基づいて、前記第一制約条件及び前記第二制約条件を満たすように前記実行フローを生成するフロー生成部と、
前記第一制約条件及び前記第二制約条件とは異なる評価条件に基づいて前記実行フロー及び前記第一パス情報を評価し、評価結果に基づいて前記実行フローの採用可否を判定するフロー評価部と、を有する、付記10記載のプログラミング支援装置。
(付記12)
前記プランニング支援部は、
前記実行フローと、前記第一パス情報と、前記ロボットの動作シミュレーション用の環境データとに基づいて、前記作業ジョブ間における前記ロボットの動作パスを規定する第二パス情報を生成するパス生成部を更に有し、
前記フロー評価部は、前記実行フロー、前記第一パス情報及び前記第二パス情報を前記評価条件に基づいて評価し、評価結果に基づいて前記実行フローの採用可否を判定する、付記11記載のプログラミング支援装置。
(付記13)
前記実行フローの採用可否を判定するための基準を調節する演算レベルを、ユーザインタフェースへの入力に応じて設定する演算レベル設定部を更に備える、付記11又は12記載のプログラミング支援装置。
(付記14)
前記プランニング支援部により生成された前記実行フローに基づいて、前記ロボットの動作プログラムを生成するプログラム生成部を更に備える、付記10~13のいずれか一項記載のプログラミング支援装置。
(付記15)
付記14記載のプログラミング支援装置と、
前記ロボットと、
前記プログラム生成部により生成された前記動作プログラムに従って前記ロボットを制御するコントローラと、を備えるロボットシステム。
(付記16)
プログラミング支援装置により実行される方法であって、
ロボットに実行させる複数の作業ジョブについて、前記作業ジョブごとの実行上の制約条件である第一制約条件を、ユーザインタフェースへの入力に応じて設定することと、
前記作業ジョブ同士の関係についての制約条件である第二制約条件を、前記ユーザインタフェースへの入力に応じて設定することと、
前記第一制約条件及び前記第二制約条件に基づいて、少なくとも一つの前記作業ジョブの実行タイミングをチェックすることと、を含むプログラミング支援方法。
(付記17)
プログラミング支援装置により実行されるプログラム生成方法であって、
ロボットに実行させる複数の作業ジョブについて、前記作業ジョブごとの実行上の制約条件である第一制約条件を、ユーザインタフェースへの入力に応じて設定することと、
前記作業ジョブ同士の関係についての制約条件である第二制約条件を、前記ユーザインタフェースへの入力に応じて設定することと、
少なくとも一つの前記作業ジョブについて、前記ロボットの動作パスを規定する第一パス情報を取得することと、
前記第一制約条件及び前記第二制約条件に基づいて、少なくとも一つの前記作業ジョブの実行タイミングをチェックすることと、
前記実行タイミングのチェック結果に基づいて、前記第一制約条件及び前記第二制約条件を満たすように前記複数の作業ジョブの実行フローを生成することと、
前記実行フローに基づいて、前記ロボットの動作プログラムを生成することと、を含むプログラム生成方法。
1…ロボットシステム、2…ロボット、3…ロボットコントローラ、100…プログラミング支援装置、111…環境データ記憶部、114…作業ジョブ記憶部、130…ユーザインタフェース、401…画面データ生成部、402…第一更新部、403…第二更新部、408…第一入力サポート部、409…第二入力サポート部、410…オプション情報取得部、411…条件読込部、412…第一条件設定部、413…対象物設定部、414…状態設定部、416…仮フロー生成部、417…第二条件設定部、418…演算レベル設定部、419…条件登録部、420…個別条件記憶部、422…ジョブ間条件記憶部、501…プランニング支援部、503…フロー調節部、504…判定部、505…パス情報取得部、506…つなぎジョブ生成部、507…フロー評価部、510…プログラム生成部、G1…プランニング画面(入力画面)、G2…リスト表示エリア、G9…第一入力エリア、G20…第二入力エリア。
Claims (20)
- ロボットの動作パターンを規定する複数の作業ジョブを記憶する作業ジョブ記憶部と、
前記複数の作業ジョブのいずれかについて、前記ロボットの動作環境を指定する環境条件を、ユーザインタフェースへの入力に応じて設定する第一条件設定部と、
前記複数の作業ジョブのうち、前記ロボットに実行させる複数の実行対象の作業ジョブを、前記ユーザインタフェースへの入力に応じて設定する第二条件設定部と、
前記第二条件設定部により設定された前記複数の実行対象の作業ジョブの実行順序を定めた実行フローにおいて、少なくとも一つの前記作業ジョブが前記環境条件を満たすか否かを、当該実行順序に基づいて判定するプランニング支援部と、を備えるプログラミング支援装置。 - 前記プランニング支援部は、前記実行フローのいずれか一つの前記作業ジョブの実行タイミングにおける環境状態を、当該実行フローの他の作業ジョブにおける前記ロボットの動作内容と、当該実行フローの前記実行順序とに基づいて特定し、当該環境状態が当該一つの作業ジョブの前記環境条件を満たすか否かを判定する、請求項1記載のプログラミング支援装置。
- 前記実行フローが第一作業ジョブ及び第二作業ジョブを順に含む場合に、前記プランニング支援部は、少なくとも前記第一作業ジョブにおける前記ロボットの動作内容に基づいて前記第二作業ジョブの実行タイミングにおける環境状態を特定し、当該環境状態が前記第二作業ジョブの前記環境条件を満たすか否かを判定する、請求項1又は2記載のプログラミング支援装置。
- 前記実行フローが前記第一作業ジョブ、前記第二作業ジョブ及び第三作業ジョブを順に含む場合に、前記プランニング支援部は、少なくとも前記第一作業ジョブにおける前記ロボットの動作内容に基づいて前記第二作業ジョブの実行タイミングにおける前記環境状態を特定し、当該環境状態を少なくとも前記第二作業ジョブにおける前記ロボットの動作内容に基づいて更新して前記第三作業ジョブの実行タイミングにおける前記環境状態を特定し、当該環境状態が前記第三作業ジョブの前記環境条件を満たすか否かを判定する、請求項3記載のプログラミング支援装置。
- 前記第一作業ジョブにより規定される動作パターンが、作業対象物を物理的に操作する動作を含み、前記第二作業ジョブの前記環境条件が、当該作業対象物の状態を指定する条件を含む場合に、前記プランニング支援部は、前記第一作業ジョブに従って前記ロボットが動作した後の当該作業対象物の状態を前記第二作業ジョブの実行タイミングにおける環境状態として特定し、当該環境状態が前記第二作業ジョブの前記環境条件を満たすか否かを判定する、請求項3又は4記載のプログラミング支援装置。
- 前記プランニング支援部は、前記実行フローのいずれか一つの前記作業ジョブの環境条件と、当該実行フローの他の前記作業ジョブにおける前記ロボットの動作内容とに基づいて、当該一つの作業ジョブが当該環境条件を満たすために、当該一つの作業ジョブと当該他の作業ジョブとの間に必要とされる順序条件を生成し、当該実行フローの実行順序が当該順序条件を満たすか否かを判定する、請求項1記載のプログラミング支援装置。
- 前記実行フローが、作業対象物を物理的に操作する動作を含む動作パターンを規定する第一作業ジョブと、当該作業対象物の状態を指定する条件を含む前記環境条件が設定された第二作業ジョブとを含む場合に、前記プランニング支援部は、前記第一作業ジョブに従って前記ロボットが動作した後の当該作業対象物の状態と、前記第二作業ジョブの前記環境条件が指定する当該作業対象物の状態との関係に基づいて、前記第一作業ジョブと前記第二作業ジョブとの間の前記順序条件を生成する、請求項6記載のプログラミング支援装置。
- 前記第二条件設定部は、前記ユーザインタフェースへの入力に基づいて、少なくとも二つの前記実行対象の作業ジョブの間に、実行タイミングの関係を指定するタイミング条件を更に設定するように構成され、
前記プランニング支援部は、前記タイミング条件を満たすように前記実行順序を定めた前記実行フローにおいて、少なくとも一つの前記作業ジョブが前記環境条件を満たすか否かを当該実行順序に基づいて判定する、請求項1~7のいずれか一項記載のプログラミング支援装置。 - 前記環境条件を入力するための第一入力エリアと、前記複数の実行対象の作業ジョブを選択する第二入力エリアと、を含む入力画面を前記ユーザインタフェースに表示するためのデータを生成する画面データ生成部を更に備える、請求項8記載のプログラミング支援装置。
- 前記ユーザインタフェースへの入力に応じて前記第一入力エリアの表示用データを更新する第一更新部と、
前記ユーザインタフェースへの入力に応じて前記第二入力エリアの表示用データを更新する第二更新部と、を更に備え、
前記画面データ生成部は、前記複数の作業ジョブのリストを示すリスト表示エリアを更に含む前記入力画面の表示用データを生成し、
前記第一更新部は、前記リスト表示エリアにおいて選択された前記作業ジョブの前記環境条件を入力可能とするように前記第一入力エリアの表示用データを更新し、
前記第二更新部は、前記リスト表示エリアにおいて選択された複数の前記作業ジョブを表示して当該複数の作業ジョブ間の前記タイミング条件を入力可能とするように前記第二入力エリアの表示用データを更新する、請求項9記載のプログラミング支援装置。 - 前記第二入力エリアに表示される前記複数の作業ジョブの仮フローを生成する仮フロー生成部を更に備え、
前記第二更新部は、前記仮フローを表示し、前記仮フローにおける前記作業ジョブ間に前記タイミング条件を入力可能とするように前記第二入力エリアの表示用データを更新する、請求項10記載のプログラミング支援装置。 - 前記画面データ生成部は、前記リスト表示エリアが前記第一入力エリア及び前記第二入力エリアの間に配置されるように前記入力画面の表示用データを生成する、請求項10又は11記載のプログラミング支援装置。
- 少なくとも前記環境条件を前記作業ジョブに対応付けて条件記憶部に登録する条件登録部と、
前記条件記憶部から前記環境条件を読み込む条件読込部とを更に備える、請求項1~12のいずれか一項記載のプログラミング支援装置。 - 前記プランニング支援部は、
前記実行フローにおいて少なくとも一つの前記作業ジョブが前記環境条件を満たすか否かを、当該実行フローの前記実行順序に基づいて判定する判定部と、
前記実行フローにおいていずれかの前記作業ジョブが前記環境条件を満たしていないと判定した場合に、前記タイミング条件を満たすように前記実行順序を変更するフロー調節部と、
前記実行フローが前記環境条件を満たさない前記作業ジョブを含んでいない場合に、前記環境条件及び前記タイミング条件とは異なる評価条件に基づいて当該実行フローを評価し、評価結果に基づいて当該実行フローの採用可否を判定するフロー評価部と、を有する、請求項8~12のいずれか一項記載のプログラミング支援装置。 - 前記プランニング支援部は、
前記実行フローと、前記ロボットの動作シミュレーション用のモデルデータとに基づいて、前記作業ジョブ間における前記ロボットの動作パターンを規定するつなぎジョブを生成するつなぎジョブ生成部を更に有し、
前記フロー評価部は、前記実行フロー、前記複数の実行対象の作業ジョブ及び少なくとも一つの前記つなぎジョブを前記評価条件に基づいて評価し、評価結果に基づいて前記実行フローの採用可否を判定する、請求項14記載のプログラミング支援装置。 - 前記実行フローの採用可否を判定するための基準を調節する演算レベルを、前記ユーザインタフェースへの入力に応じて設定する演算レベル設定部を更に備える、請求項14又は15記載のプログラミング支援装置。
- 前記プランニング支援部により採用可と判定された前記実行フローに基づいて、前記ロボットの動作プログラムを生成するプログラム生成部を更に備える、請求項14~16のいずれか一項記載のプログラミング支援装置。
- 請求項17記載のプログラミング支援装置と、
前記ロボットと、
前記プログラム生成部により生成された前記動作プログラムに従って前記ロボットを制御するコントローラと、を備えるロボットシステム。 - プログラミング支援装置により実行される方法であって、
ロボットの動作パターンを規定する複数の作業ジョブを記憶することと、
前記複数の作業ジョブのいずれかについて、前記ロボットの動作環境を指定する環境条件を、ユーザインタフェースへの入力に応じて設定することと、
前記複数の作業ジョブのうち、前記ロボットに実行させる複数の実行対象の作業ジョブを、前記ユーザインタフェースへの入力に応じて設定することと、
前記複数の実行対象の作業ジョブの実行順序を定めた実行フローにおいて、少なくとも一つの前記作業ジョブが前記環境条件を満たすか否かを、当該実行順序に基づいて判定することと、を含むプログラミング支援方法。 - プログラミング支援装置により実行されるプログラム生成方法であって、
ロボットの動作パターンを規定する複数の作業ジョブを記憶することと、
前記複数の作業ジョブのいずれかについて、前記ロボットの動作環境を指定する環境条件を、ユーザインタフェースへの入力に応じて設定することと、
前記複数の作業ジョブのうち、前記ロボットに実行させる複数の実行対象の作業ジョブを、前記ユーザインタフェースへの入力に応じて設定することと、
少なくとも一つの前記作業ジョブについて、前記ロボットの動作パスを規定する第一パス情報を取得することと、
前記複数の実行対象の作業ジョブの実行順序を定めた実行フローにおいて、少なくとも一つの前記作業ジョブが前記環境条件を満たすか否かを、当該実行順序に基づいて判定することと、
前記実行フローが前記環境条件を満たさない前記作業ジョブを含んでいない場合に、
当該実行フローに基づいて、前記ロボットの動作プログラムを生成することと、を含むプログラム生成方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018545402A JP6455646B1 (ja) | 2017-04-19 | 2018-04-18 | プログラミング支援装置、ロボットシステム、プログラミング支援方法及びプログラム生成方法 |
EP18788111.5A EP3613548A4 (en) | 2017-04-19 | 2018-04-18 | PROGRAMMING ASSISTANT DEVICE, ROBOT SYSTEM, PROGRAMMING ASSISTANCE METHOD, AND PROGRAM GENERATION METHOD |
CN201880025770.8A CN110536783B (zh) | 2017-04-19 | 2018-04-18 | 编程支持装置、机器人***、编程支持方法以及存储介质 |
US16/655,254 US11813750B2 (en) | 2017-04-19 | 2019-10-17 | Programming support apparatus, robot system, and programming support method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017083091 | 2017-04-19 | ||
JP2017-083091 | 2017-04-19 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/655,254 Continuation US11813750B2 (en) | 2017-04-19 | 2019-10-17 | Programming support apparatus, robot system, and programming support method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018194094A1 true WO2018194094A1 (ja) | 2018-10-25 |
Family
ID=63856134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/016011 WO2018194094A1 (ja) | 2017-04-19 | 2018-04-18 | プログラミング支援装置、ロボットシステム、プログラミング支援方法及びプログラム生成方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11813750B2 (ja) |
EP (1) | EP3613548A4 (ja) |
JP (1) | JP6455646B1 (ja) |
CN (1) | CN110536783B (ja) |
WO (1) | WO2018194094A1 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3680830A1 (en) * | 2019-01-09 | 2020-07-15 | Subaru Corporation | Work planning device |
JP2020121389A (ja) * | 2019-01-31 | 2020-08-13 | セイコーエプソン株式会社 | 制御装置、ロボットシステム、及び表示方法 |
JP2020168666A (ja) * | 2019-04-01 | 2020-10-15 | 株式会社安川電機 | プログラミング支援装置、ロボットシステム及びプログラミング支援方法 |
WO2021038842A1 (ja) * | 2019-08-30 | 2021-03-04 | 日本電気株式会社 | 情報処理装置、制御方法及び記憶媒体 |
CN112847328A (zh) * | 2019-11-27 | 2021-05-28 | 株式会社安川电机 | 控制***、控制器、和控制方法 |
JPWO2021152852A1 (ja) * | 2020-01-31 | 2021-08-05 | ||
WO2021171350A1 (ja) * | 2020-02-25 | 2021-09-02 | 日本電気株式会社 | 制御装置、制御方法及び記録媒体 |
WO2023171722A1 (ja) * | 2022-03-08 | 2023-09-14 | 株式会社安川電機 | プログラム生成装置、及びプログラム生成方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021102240A (ja) * | 2019-12-25 | 2021-07-15 | セイコーエプソン株式会社 | プログラム作成システム、プログラム作成装置およびロボットシステム |
CN111325499A (zh) * | 2020-01-22 | 2020-06-23 | 上海擎朗智能科技有限公司 | 一种物品派送方法、装置、机器人和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6292715B1 (en) * | 1998-10-27 | 2001-09-18 | Perry Investments, Inc. | Robotic process planning method and apparatus using templates |
JP4103057B2 (ja) | 1998-06-29 | 2008-06-18 | 株式会社安川電機 | ロボットの動作経路計画方法およびその装置 |
JP2010253565A (ja) * | 2009-04-21 | 2010-11-11 | Advanced Telecommunication Research Institute International | コミュニケーションロボット開発支援装置 |
JP2014117781A (ja) * | 2012-12-18 | 2014-06-30 | Yaskawa Electric Corp | 教示データ作成装置、ロボットシステム、及び教示データ作成方法 |
JP2015033744A (ja) * | 2013-08-09 | 2015-02-19 | 株式会社安川電機 | ロボット制御装置及びロボット制御方法 |
JP2016059985A (ja) | 2014-09-16 | 2016-04-25 | 株式会社安川電機 | 作業計画装置、作業計画方法および作業計画プログラム |
JP2016099846A (ja) * | 2014-11-21 | 2016-05-30 | 国立研究開発法人産業技術総合研究所 | 動作指令生成装置、動作指令生成方法、コンピュータプログラム、及び処理システム |
WO2016125259A1 (ja) * | 2015-02-03 | 2016-08-11 | 株式会社安川電機 | 動作指令生成装置、動作指令生成方法、コンピュータプログラム、及び処理システム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3990262B2 (ja) * | 2002-12-02 | 2007-10-10 | ファナック株式会社 | 産業用ロボット |
CN1255251C (zh) * | 2003-05-29 | 2006-05-10 | 上海交通大学 | 面向对象的机器人通用开放控制*** |
US20050137734A1 (en) | 2003-12-23 | 2005-06-23 | Asml Netherlands B.V. | Method of operating a lithographic apparatus or lithographic processsing cell, lithographic apparatus and lithographic processing cell |
JP4210270B2 (ja) | 2005-06-07 | 2009-01-14 | ファナック株式会社 | ロボット制御装置及びロボット制御方法 |
CN101631651B (zh) | 2007-01-12 | 2013-07-24 | 汉斯乔格·巴尔特斯 | 用于产生机器人的方法和*** |
CN101648378A (zh) * | 2008-08-11 | 2010-02-17 | 悠进机器人股份公司 | 基于机器人中间件结构及情节的控制*** |
JP5513146B2 (ja) * | 2010-01-29 | 2014-06-04 | 株式会社デンソーウェーブ | ロボットシミュレータ |
US9132546B2 (en) | 2011-04-14 | 2015-09-15 | Mitsubishi Electric Corporation | Robot control apparatus |
JP5656919B2 (ja) * | 2012-05-31 | 2015-01-21 | 京セラドキュメントソリューションズ株式会社 | 送信装置 |
US9164656B1 (en) * | 2013-01-09 | 2015-10-20 | Daniel S. Keller | Graphical display for scheduling and monitoring tasks |
US9351569B1 (en) * | 2013-02-11 | 2016-05-31 | Automated Cells and Equipment, Inc. | Parts supply drawer system for robot assisted manufacturing |
JP6558037B2 (ja) * | 2015-04-10 | 2019-08-14 | 富士通株式会社 | 運用管理プログラム、運用管理方法、および運用管理装置 |
JP6953691B2 (ja) * | 2016-08-12 | 2021-10-27 | 富士通株式会社 | 工程計画支援装置、工程計画支援方法および工程計画支援プログラム |
KR101849972B1 (ko) * | 2016-12-27 | 2018-05-31 | 엘지전자 주식회사 | 로봇 청소기 및 그의 제어방법 |
-
2018
- 2018-04-18 WO PCT/JP2018/016011 patent/WO2018194094A1/ja unknown
- 2018-04-18 CN CN201880025770.8A patent/CN110536783B/zh active Active
- 2018-04-18 JP JP2018545402A patent/JP6455646B1/ja active Active
- 2018-04-18 EP EP18788111.5A patent/EP3613548A4/en active Pending
-
2019
- 2019-10-17 US US16/655,254 patent/US11813750B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4103057B2 (ja) | 1998-06-29 | 2008-06-18 | 株式会社安川電機 | ロボットの動作経路計画方法およびその装置 |
US6292715B1 (en) * | 1998-10-27 | 2001-09-18 | Perry Investments, Inc. | Robotic process planning method and apparatus using templates |
JP2010253565A (ja) * | 2009-04-21 | 2010-11-11 | Advanced Telecommunication Research Institute International | コミュニケーションロボット開発支援装置 |
JP2014117781A (ja) * | 2012-12-18 | 2014-06-30 | Yaskawa Electric Corp | 教示データ作成装置、ロボットシステム、及び教示データ作成方法 |
JP2015033744A (ja) * | 2013-08-09 | 2015-02-19 | 株式会社安川電機 | ロボット制御装置及びロボット制御方法 |
JP2016059985A (ja) | 2014-09-16 | 2016-04-25 | 株式会社安川電機 | 作業計画装置、作業計画方法および作業計画プログラム |
JP2016099846A (ja) * | 2014-11-21 | 2016-05-30 | 国立研究開発法人産業技術総合研究所 | 動作指令生成装置、動作指令生成方法、コンピュータプログラム、及び処理システム |
WO2016125259A1 (ja) * | 2015-02-03 | 2016-08-11 | 株式会社安川電機 | 動作指令生成装置、動作指令生成方法、コンピュータプログラム、及び処理システム |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3680830A1 (en) * | 2019-01-09 | 2020-07-15 | Subaru Corporation | Work planning device |
JP2020121389A (ja) * | 2019-01-31 | 2020-08-13 | セイコーエプソン株式会社 | 制御装置、ロボットシステム、及び表示方法 |
JP7255210B2 (ja) | 2019-01-31 | 2023-04-11 | セイコーエプソン株式会社 | 制御装置、ロボットシステム、及び表示方法 |
US11413752B2 (en) | 2019-04-01 | 2022-08-16 | Kabushiki Kaisha Yaskawa Denki | Programming assistance for robots |
JP2020168666A (ja) * | 2019-04-01 | 2020-10-15 | 株式会社安川電機 | プログラミング支援装置、ロボットシステム及びプログラミング支援方法 |
WO2021038842A1 (ja) * | 2019-08-30 | 2021-03-04 | 日本電気株式会社 | 情報処理装置、制御方法及び記憶媒体 |
JPWO2021038842A1 (ja) * | 2019-08-30 | 2021-03-04 | ||
JP7264253B2 (ja) | 2019-08-30 | 2023-04-25 | 日本電気株式会社 | 情報処理装置、制御方法及びプログラム |
EP3828654A1 (en) * | 2019-11-27 | 2021-06-02 | Kabushiki Kaisha Yaskawa Denki | Control system, controller and control method |
CN112847328A (zh) * | 2019-11-27 | 2021-05-28 | 株式会社安川电机 | 控制***、控制器、和控制方法 |
WO2021152852A1 (ja) * | 2020-01-31 | 2021-08-05 | 三菱電機株式会社 | 制御装置、機械学習装置、および、制御方法 |
JPWO2021152852A1 (ja) * | 2020-01-31 | 2021-08-05 | ||
JP7282217B2 (ja) | 2020-01-31 | 2023-05-26 | 三菱電機株式会社 | 制御装置、機械学習装置、および、制御方法 |
WO2021171350A1 (ja) * | 2020-02-25 | 2021-09-02 | 日本電気株式会社 | 制御装置、制御方法及び記録媒体 |
WO2023171722A1 (ja) * | 2022-03-08 | 2023-09-14 | 株式会社安川電機 | プログラム生成装置、及びプログラム生成方法 |
Also Published As
Publication number | Publication date |
---|---|
US11813750B2 (en) | 2023-11-14 |
CN110536783B (zh) | 2022-06-14 |
JP6455646B1 (ja) | 2019-01-23 |
US20200047339A1 (en) | 2020-02-13 |
JPWO2018194094A1 (ja) | 2019-06-27 |
CN110536783A (zh) | 2019-12-03 |
EP3613548A4 (en) | 2021-05-19 |
EP3613548A1 (en) | 2020-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6455646B1 (ja) | プログラミング支援装置、ロボットシステム、プログラミング支援方法及びプログラム生成方法 | |
US11007646B2 (en) | Programming assistance apparatus, robot system, and method for generating program | |
JP6676286B2 (ja) | 情報処理方法、および情報処理装置 | |
US9387589B2 (en) | Visual debugging of robotic tasks | |
EP1522912B1 (en) | Manual-mode operating system for robot | |
EP1712969B1 (en) | Robot program correcting apparatus | |
US8332067B2 (en) | Device and method for processing a robot control program | |
US20160346921A1 (en) | Portable apparatus for controlling robot and method thereof | |
JP2001105359A (ja) | ロボットシステム用グラフィック表示装置 | |
JP6469162B2 (ja) | ロボットのオフライン教示装置 | |
US11345026B2 (en) | Robot program generation apparatus | |
JP5386921B2 (ja) | 産業用ロボットの位置教示装置、動作プログラム作成装置、産業用ロボットの位置教示方法およびプログラム | |
WO2019021045A1 (en) | METHOD AND SYSTEM FOR ACTION OF AN INDUSTRIAL ROBOT BASED ON A PARAMETER | |
Thoo et al. | Online and offline robot programming via augmented reality workspaces | |
JP6900533B2 (ja) | 情報処理方法、情報処理装置、ロボット装置、情報処理プログラム、およびコンピュータ読み取り可能な記録媒体 | |
JP6939662B2 (ja) | プログラミング支援装置、プログラミング支援方法及びプログラム | |
JP6766779B2 (ja) | ユーザインタフェース開発支援装置、ユーザインタフェース開発支援方法、および、ユーザインタフェース開発支援プログラム | |
CN112847329A (zh) | 仿真机器人轨迹 | |
US20230249345A1 (en) | System and method for sequencing assembly tasks | |
CN110198812B (zh) | 用于选择用于工业机器人调试的初始点的方法和装置 | |
JP7362875B2 (ja) | 情報提供装置 | |
WO2022269927A1 (ja) | プログラム作成装置 | |
JP7436797B2 (ja) | ロボットのプログラム作成支援装置 | |
WO2024028977A1 (ja) | 教示装置 | |
WO2023276149A1 (ja) | 最適化支援装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2018545402 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18788111 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2018788111 Country of ref document: EP Effective date: 20191119 |