PLANNING SYSTEM, ROBOT SYSTEM, PLANNING METHOD, AND PLANNING PROGRAM

The planning system optimizes robot control by calculating cycle times and generating task flows that meet reference times, enhancing robot efficiency and utilization.

JP7607769B2Active Publication Date: 2024-12-27YASKAWA DENKI KK
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2023531713
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-06-30
Filing Date
2022-05-26
Publication Date
2024-12-27
Estimated Expiration
2042-05-26

AI Technical Summary

Technical Problem

Existing robot control systems lack effective planning methods to optimize cycle times and task flows, leading to inefficient robot utilization and operation.

Method used

A planning system that includes a cycle time estimation unit and a flow generation unit to calculate estimated cycle times and generate task flows based on simulations, ensuring compliance with a reference cycle time and optimizing robot operations.

Benefits of technology

Enables effective robot control by generating task flows that adhere to standard cycle times, improving robot utilization rates and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007607769000001
    Figure 0007607769000001
  • Figure 0007607769000002
    Figure 0007607769000002
  • Figure 0007607769000003
    Figure 0007607769000003
Patent Text Reader

Abstract

A planning system according to one example of the present invention comprises: a cycle time estimation unit which calculates an estimated cycle time of a job on the basis of simulation; and a flow generation unit which generates, on the basis of the estimated cycle time and a preset reference cycle time for the job, at least one task flow for executing said job by at least one robot.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] One aspect of the present disclosure relates to a planning system, a robot system, a planning method, and a planning program. [Background technology]

[0002] Patent Document 1 describes a robot path generation device that generates a robot path between an arbitrarily set start point and end point based on the results of a machine learning process based on a data set. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] International Publication No. 2018 / 143003 Summary of the Invention [Problem to be solved by the invention]

[0004] Planning is required to achieve effective robot control. [Means for solving the problem]

[0005] A planning system according to one aspect of the present disclosure includes a cycle time estimation unit that calculates an estimated cycle time of a job based on a simulation, and a flow generation unit that generates at least one task flow for executing the job by at least one robot based on a reference cycle time that is preset for the job and the estimated cycle time.

[0006] A planning method according to an aspect of the present disclosure is executed by a planning system including at least one processor, the planning method including the steps of: calculating an estimated cycle time of a job based on a simulation; and generating at least one task flow for executing the job by at least one robot based on a reference cycle time preset for the job and the estimated cycle time.

[0007] A planning program according to one aspect of the present disclosure causes a computer to execute the steps of: calculating an estimated cycle time of a job based on a simulation; and generating at least one task flow for executing the job by at least one robot based on a predetermined reference cycle time for the job and the estimated cycle time. Effect of the Invention

[0008] According to one aspect of the present disclosure, planning can be performed to achieve effective robot control. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 illustrates an example of a configuration of a robot system. [Diagram 2] FIG. 1 illustrates an example of a task flow. [Diagram 3] FIG. 2 illustrates an example of a hardware configuration of a programming support device. [Figure 4] FIG. 2 illustrates an example of a functional configuration of a programming support device. [Diagram 5] 11 is a flowchart showing an example of a process in a programming support device. [Figure 6] FIG. 13 is a diagram showing an example of a display of a planning result. [Figure 7] 13 is a flowchart showing an example of a detailed procedure for adjusting a task flow. [Figure 8]FIG. 13 illustrates an example of a process for increasing a required time for a task. [Figure 9] 13 is a flowchart showing another example of the process in the programming support device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. In the description of the drawings, the same or equivalent elements are designated by the same reference numerals, and duplicated explanations will be omitted.

[0011] [Robot System] In this embodiment, the planning system according to the present disclosure is applied to a programming support device 4 of a robot system 1. In this disclosure, a planning system refers to a computer system for determining the operation of at least one robot. The robot system 1 is a system that automates various tasks such as processing and assembly by making the robot execute an operation taught by an operator. FIG. 1 is a diagram showing an example of the configuration of the robot system 1. In one example, the robot system 1 includes one or more robots 2, one or more robot controllers 3 corresponding to the one or more robots 2, and a programming support device 4. FIG. 1 shows three robots 2 and three robot controllers 3, and shows a configuration in which one robot 2 is connected to one robot controller 3. However, the number of each device and the connection method are not limited to the example of FIG. 1. For example, multiple robots 2 may be connected to one robot controller 3.

[0012] In one example, the robot 2 is a multi-axis serial-link vertical articulated robot that can perform various processes while holding a tool at its tip 5. The tool is also called an end effector. The robot 2 can freely change the position and posture of the tip 5 within a predetermined range. The robot 2 may be a six-axis vertical articulated robot, or a seven-axis vertical articulated robot with one additional redundant axis in addition to the six axes. In one example, multiple robots 2 are arranged so that any one of the robots 2 can perform the same process on a given workpiece.

[0013] The robot controller 3 is a device that controls the robot 2 according to a pre-generated operation program. In one example, the operation program includes data for controlling the robot 2, for example, a path indicating the trajectory of the robot 2. The trajectory of the robot 2 refers to the path of movement of the robot 2 or its components. For example, the trajectory of the robot 2 may be the trajectory of the tip part 5. In one example, the robot controller 3 calculates joint angle target values ​​(angle target values ​​of each joint of the robot 2) for matching the position and posture of the tip part 5 with the target values ​​indicated in the operation program, and controls the robot 2 according to the angle target values.

[0014] Under the control of the robot controller 3, at least one robot 2 executes a series of processes. In the present disclosure, this series of processes is also referred to as a job. By having at least one robot 2 execute a job, a result desired by a user of the robot system 1 can be obtained. The smallest unit of processing that constitutes a job is called a task. Thus, a job includes one or more tasks. Each robot 2 can execute various tasks such as "picking up a part," "placing a part," "fitting a part into a workpiece," and "taking a waiting position." One task can include one path, which is the trajectory of the robot 2 in that task.

[0015] In one example, the robot 2 may be a mobile robot capable of self-propulsion. In this case, the robot 2 may move within the workspace to a given position according to an operation program prior to the start of processing. For example, the robot 2 may be capable of self-propulsion while avoiding other objects. The robot 2 may repeatedly execute a job, i.e., at least one task, indicated by the operation program in a position indicated by the operation program.

[0016] The programming support device 4 is a device that generates an operation program. For example, the programming support device 4 generates an operation program indicating a process to be executed by each of one or more robots 2 for the robot 2. In one example, the programming support device 4 evaluates at least some components of a job, such as a path and a posture of the robot 2 at a certain time. Then, the programming support device 4 generates an operation program based on the evaluation result. The programming support device 4 may perform the evaluation by executing a simulation. The simulation refers to a process of virtually executing at least a part of the operation program. More specifically, the simulation refers to a process of simulating the execution of at least a part of the operation program on a computer without actually operating the robot 2. In one example, the simulation is a process of virtually executing at least a part of the operation program in a virtual space in which the robot 2 and other objects are arranged. The other objects are objects arranged around the robot 2, and may be, for example, other robots 2, workpieces, other manufacturing devices, etc.

[0017] [Task Flow] In one example, the programming support device 4 generates a task flow for efficiently executing a job, and generates an operation program for executing the task flow by one or more robots 2. In this disclosure, a task flow refers to information indicating which robot executes which task, in what order, and at what timing. Each task flow is information for executing a job by at least one robot 2.

[0018] In one example, the task flow includes a plurality of work tasks, a plurality of transition tasks, and a plurality of waiting tasks. The work task refers to a task defined in advance by a user. The transition task refers to a task for guiding the robot 2 to the next work task, and is located between adjacent work tasks. The waiting task refers to a task for making the robot wait. The waiting task may be located between the work task and the transition task. The transition task and the waiting task are automatically set (inserted) by the programming support device 4.

[0019] In the present disclosure, a path in a work task is referred to as a "work path" and a path in a connecting task is referred to as an "air cut path". The work path is predefined by a user when generating a work task. The air cut path connects the end point of a work path in a preceding work task and the start point of a work path in a subsequent work task. In one example, the air cut path is automatically set by setting at least one teaching point other than the start point and the end point. The teaching point refers to a reference point that is set to define a path. Since the robot 2 does not move in a waiting task, the waiting task does not have a path.

[0020] The task flow may include a waiting section, which is a time span during which the robot 2 temporarily stops. The waiting section may be set by inserting a waiting task, or may be set in the simulation based on a factor other than the waiting task. For example, the waiting section may be set based on a constraint on the operation of the robot 2, or may be set based on an external factor such as the surrounding environment of the robot 2.

[0021] FIG. 2 is a diagram showing an example of a task flow. In this example, the task flow 200 shows that two robots 2 (robots Ra and Rb) cooperate to execute a job including five work tasks Ta, Tb, Tc, Td, and Te. In FIG. 2, the symbol "S" indicates the start posture (initial posture) of the robot 2, and the symbol "E" indicates the end posture of the robot 2. In this example, the robot Ra executes the work tasks Ta, Tb, and Te in this order, and the robot Rb executes the work tasks Tc and Td in this order. The transition task is inserted between the preceding work task and the subsequent work task, and as a result, the transition task is located between adjacent work tasks. As shown in FIG. 2, in one example, the transition task is also inserted between the start posture and the first work task, and further inserted between the last work task and the end posture. The task flow 200 includes waiting sections 201, 202, and 203. Each waiting section is located between two consecutive tasks (specifically, between consecutive work tasks and a transition task).

[0022] The programming support device 4 receives input related to at least one work task. Then, the programming support device 4 executes a simulation based on various constraints such as the execution order of the work tasks, the allocation of the robot 2 to each work task, and an interlock, which is a mechanism for executing the next action only after a given condition is met. Then, the programming support device 4 generates a task flow based on the simulation.

[0023] In one example, the programming support device 4 generates at least one task flow based on a reference cycle time preset for a job and an estimated cycle time of the job estimated based on a simulation. The cycle time refers to the time required to execute a job once, that is, the time required for the job. In one example, the reference cycle time is specified by a user and is therefore the execution time of the job desired by the user. The estimated cycle time is the execution time of the job calculated by a simulation. In one example, the programming support device 4 generates each task flow such that the estimated cycle time is equal to or less than the reference cycle time.

[0024] In one example, the programming support device 4 shortens at least one waiting time included in a job in order to increase the operating rate of at least one robot 2 in the job. This process is intended, for example, to operate each robot 2 for as much time as possible during the cycle time. In one example, the programming support device 4 increases the required time of at least one task among a plurality of tasks constituting the task flow for at least one task flow, thereby shortening the waiting time. The task for which the programming support device 4 increases the required time is a work task or a connecting task. In the example of FIG. 2, the programming support device 4 attempts to shorten at least one of the waiting sections 201, 202, and 203. When increasing the required time of at least one work task or a connecting task, the programming support device 4 may increase the estimated cycle time as long as the estimated cycle time is equal to or less than the reference cycle time. In one example, the programming support device 4 extends the estimated cycle time while shortening at least one waiting time so that the estimated cycle time approaches the reference cycle time.

[0025] [Programming support device] 3 is a diagram showing an example of a hardware configuration of the programming support device 4. In one example, the programming support device 4 includes a main body 10, a monitor 20, and an input device 30.

[0026] The main body 10 is composed of at least one computer. The main body 10 has a circuit 160, which has at least one processor 161, a memory 162, a storage 163, and an input / output port 164. The storage 163 records a program for configuring each functional module of the main body 10. The storage 163 is a computer-readable recording medium such as a hard disk, a non-volatile semiconductor memory, a magnetic disk, or an optical disk. The memory 162 temporarily stores a program loaded from the storage 163, a calculation result of the processor 161, and the like. The processor 161 configures each functional module by executing a program in cooperation with the memory 162. The input / output port 164 inputs and outputs electrical signals between the monitor 20, the input device 30, and the robot controller 3 in response to a command from the processor 161.

[0027] The monitor 20 is a device for displaying information output from the main body 10. The monitor 20 may be any device capable of displaying graphics, an example of which is a liquid crystal panel. The input device 30 is a device for inputting information to the main body 10. The input device 30 may be any device capable of inputting desired information, an example of which is a keypad, a mouse, etc.

[0028] The monitor 20 and the input device 30 may be integrated as a touch panel. For example, the main body 10, the monitor 20, and the input device 30 may be integrated as a tablet computer.

[0029] FIG. 4 is a diagram showing an example of a functional configuration of the programming support device 4. In one example, the programming support device 4 includes a reception unit 11, a flow generation unit 12, a cycle time estimation unit 13, an evaluation unit 14, a result generation unit 15, a display control unit 16, an adjustment unit 17, an adjustment control unit 18, and a program generation unit 19 as functional modules. The reception unit 11 is a functional module that receives data required to generate a task flow or an operation program. The flow generation unit 12 is a functional module that generates at least one task flow. The cycle time estimation unit 13 is a functional module that calculates an estimated cycle time of a job based on a simulation. In one example, the cycle time estimation unit 13 is implemented as a part of the flow generation unit 12. The evaluation unit 14 is a functional module that calculates an evaluation value for at least one robot 2 that executes a task flow. The result generation unit 15 is a functional module that generates a planning result indicating at least one task flow. This planning result can also be said to be information indicating an execution plan for a job. The display control unit 16 is a functional module that displays at least one task flow as a planning result on a display device such as a monitor 20. The adjustment unit 17 is a functional module that increases the required time of the tasks that constitute the task flow. The adjustment control unit 18 is a functional module that determines whether or not the increase in the required time can be executed. In one example, the adjustment control unit 18 is implemented as a part of the adjustment unit 17. The program generation unit 19 is a functional module that generates at least one operation program for causing one or more robots 2 to execute one task flow.

[0030] [Planning method] As an example of a planning method according to the present disclosure, an example of a series of processing steps executed by the programming support device 4 will be described with reference to Fig. 5. Fig. 5 is a flowchart showing an example of processing in the programming support device 4 as a processing flow S1. That is, the programming support device 4 executes the processing flow S1.

[0031] In step S11, the reception unit 11 receives teaching data necessary for generating a task flow. This teaching data is electronic data including information necessary for at least one robot 2 to execute a job, and indicates, for example, one or more work tasks and constraints on the operation of the robot 2. Examples of the constraints include the arrangement of each robot 2, the execution order of multiple work tasks, the correspondence between the robot 2 and the work tasks, the posture of the robot 2 at the start and end of each work task, the reference cycle time, the operation time of the robot 2 in each work task, and a simultaneous execution constraint. The simultaneous execution constraint is a type of constraint (condition) imposed when operating the robot 2. For example, the simultaneous execution constraint indicates the timing at which multiple robots 2 can execute multiple tasks in parallel. The teaching data may include at least one of items set individually for each robot 2 and items set commonly for one or more robots 2. Various methods may be used to acquire the teaching data. For example, the reception unit 11 may receive teaching data input by a user, may read teaching data from a given storage device based on a user input, or may receive teaching data sent from another computer.

[0032] In step S12, the flow generation unit 12 sets the number of robots 2 that will execute a job. In one example, the flow generation unit 12 generates a plurality of task flows while changing the number of robots 2, and sets the number of robots 2 in step S12 as part of the generation. For example, the flow generation unit 12 increases the number of robots 2 from 1 to a given maximum value by 1 at a time, and generates a task flow for each number of robots 2.

[0033] In step S13, the flow generating unit 12 generates at least one task flow based on the teaching data and the set number of robots 2. In one example, the flow generating unit 12 executes a simulation based on the teaching data and the number of robots 2 to set a connecting task and a waiting task for a given work task, and further sets an air cut path. The flow generating unit 12 executes an interference check in the simulation, and generates a task flow in which no interference occurs. Interference means contact or collision between objects, for example, contact or collision of a robot 2 with another object that is not expected. In one example, the flow generating unit 12 generates a task flow in which an estimated cycle time is equal to or shorter than a reference cycle time.

[0034] In one example, the flow generation unit 12 generates a plurality of task patterns that are candidates for the task flow to be finally generated based on the teaching data. A task pattern refers to information indicating a job execution method that can be adopted as a task flow. For example, each task pattern indicates a possible combination of the correspondence between the robot 2 and the tasks, and the execution order of the tasks. For each task pattern, the flow generation unit 12 executes a simulation based on the teaching data, and identifies a task pattern in which no interference is detected.

[0035] For example, the flow generating unit 12 may identify a task pattern that does not cause interference by a simulation including a calculation of the traveling salesman problem. The traveling salesman problem is an optimization problem that, when a set of nodes (cities) and a travel cost between each node are given, a travel route with the minimum total travel cost is obtained from among multiple types of travel routes in which an agent (salesman) visits all nodes once. In one example, the flow generating unit 12 identifies one task pattern by solving a traveling salesman problem based on the simultaneous execution constraints of each of multiple task patterns. The traveling salesman problem based on the simultaneous execution constraints is a process of searching for a solution (travel route of each agent) with the minimum total travel cost while moving multiple robots 2 along the time axis under the simultaneous execution constraints, with multiple robots 2 regarded as agents. In this traveling salesman problem, the waiting tasks (waiting postures) of each of the multiple robots 2 are represented by nodes, and the work tasks and connecting tasks are represented by branches.

[0036] The flow generating unit 12 automatically generates an air cut path in a connecting task. In one example, the flow generating unit 12 generates individual air cut paths so as to avoid interference between the robot 2 and other objects. For example, in order to generate a certain air cut path, the flow generating unit 12 generates one or more way points between the end point of a work path in a preceding work task and the start point of a work path in a subsequent work task in order to avoid interference between the robot 2 and other objects. Then, the flow generating unit 12 generates an air cut path so as to pass through the one or more way points in order. In order to generate one air cut path, the flow generating unit 12 may repeatedly execute a series of processes including setting of way points and confirmation of avoidance of interference. Details of such a generation method are described, for example, in Japanese Patent No. 4103057.

[0037] In the simulation, the cycle time estimation unit 13 calculates the required time of each task constituting each task pattern, and calculates an estimated cycle time based on these required times. The cycle time estimation unit 13 calculates the required time of each task, assuming that the robot 2 is operated at the maximum speed. The flow generation unit 12 generates at least one task flow based on a reference cycle time and an estimated cycle time of each task pattern. In one example, the flow generation unit 12 generates at least one task flow whose estimated cycle time is equal to or less than the reference cycle time. The flow generation unit 12 may generate at least a task flow whose difference between the estimated cycle time and the reference cycle time is the smallest. The flow generation unit 12 may generate at least a task flow whose estimated cycle time is the smallest. When the flow generation unit 12 generates a plurality of task flows, the estimated cycle times may differ between at least two task flows. Alternatively, the plurality of task flows may include at least two task flows whose estimated cycle times are the same.

[0038] In step S14, the evaluation unit 14 calculates an evaluation value for at least one robot 2 that executes the task flow for each of the at least one generated task flow. In the present disclosure, the evaluation value refers to an index that directly or indirectly indicates the significance or value of the robot 2 that executes the job. This evaluation value can be used as a reference for the user to select a task flow. The evaluation unit 14 may calculate the evaluation value based on at least one of data obtained from a simulation in the flow generation unit 12 and a further calculation other than the simulation. When a task flow indicates the operation of multiple robots 2, the evaluation unit 14 may calculate a statistic value of the evaluation values ​​of the individual robots 2 as a final evaluation value in the task flow. The statistic value may be, for example, an average value or a median value. Alternatively, the evaluation unit 14 may obtain a set of evaluation values ​​for each robot 2. For example, the evaluation unit 14 may calculate at least one of the operating rate, the product life, and the throughput as the evaluation value.

[0039] The availability rate refers to the ratio of the operating time of the robot 2 to the estimated cycle time. For example, the evaluation unit 14 calculates the availability rate for each robot 2 as follows. That is, the evaluation unit 14 calculates the total required time for all the work tasks and all the connecting tasks of the robot 2 in the task flow. Then, the evaluation unit 14 obtains the availability rate by dividing the total time by the estimated cycle time.

[0040] The product lifespan refers to a period during which the robot 2 can operate in a manner that satisfies the product specifications. For example, the evaluation unit 14 calculates the product lifespan for each robot 2 as follows. That is, the evaluation unit 14 calculates the load applied to at least one joint axis of the robot 2 in the task flow. The evaluation unit 14 may calculate the load based on the specifications of the robot 2 and the expected operation of the robot 2 obtained by simulation. The specifications of the robot 2 may include at least one of the structure and operation specifications of the robot 2. The expected operation of the robot 2 may include at least one of the change in posture, the operation speed, and the weight of the workpiece processed by the robot 2. The evaluation unit 14 calculates the product lifespan of the robot 2 based on the load and the specifications of the robot 2. The evaluation unit 14 may further calculate at least one of the introduction cost of the robot 2, the electricity fee generated by the operation of the robot 2, and the break-even point as an evaluation value based on the product lifespan.

[0041] Throughput refers to the amount of processing by the robot 2 per unit time. The evaluation unit 14 may calculate the throughput based on the estimated cycle time and the unit time, for example, by dividing the unit time by the estimated cycle time. Examples of the length of the unit time include one hour, one day, one week, one month, three months (quarters), six months, and one year. As another example, the unit time may be the estimated operating time per day.

[0042] In step S15, the flow generating unit 12 determines whether or not to change the number of robots 2. For example, the flow generating unit 12 increments the number of robots 2 by one, and if the incremented number does not exceed a given set value, changes the number of robots 2 to that value. If the number of robots 2 is to be changed (YES in step S15), the process returns to step S12, and the processes of steps S12 to S14 are repeated. That is, the flow generating unit 12 sets the number of robots 2 to a changed value in step S12, generates a task flow based on the number of robots 2 in step S13, and calculates an evaluation value for the task flow in step S14. If the number of robots 2 is not to be changed (NO in step S15), the process proceeds to step S16.

[0043] In step S16, the result generation unit 15 generates a planning result indicating the generated at least one task flow. The result generation unit 15 temporarily or permanently stores the planning result in a storage unit. The storage unit may be the memory 162 or the storage 163.

[0044] In step S17, the display control unit 16 displays the planning result. For example, the display control unit 16 displays the planning result on the monitor 20.

[0045] FIG. 6 is a diagram showing an example of display of the planning result. In this example, the display control unit 16 displays a screen 300 expressing the generated task flows in a table format. This screen 300 includes a table 301 showing each task flow. Each row of the table 301 corresponds to one task flow. This table 301 has columns of a number ("No." column) for identifying each task flow, the number of robots 2, the estimated cycle time, the operation rate, the product life, and the throughput. The screen 300 further includes a cursor 302, an optimize button 303, and a program button 304. The cursor 302 is a user interface for selecting one task flow from the table 301. The optimize button 303 is a user interface for making the programming support device 4 adjust the selected task flow. This adjustment includes increasing the required time of at least one task (work task or connecting task) among the multiple tasks constituting the task flow, and may further include adjustment of the estimated cycle time. The program button 304 is a user interface for making the programming support device 4 generate an operation program corresponding to the selected task flow.

[0046] Returning to FIG. 5, in step S18, the adjustment unit 17 adjusts the task flow selected by the user. In one example, when the user clicks the optimize button 303, the reception unit 11 receives a user input instructing adjustment of the selected task flow. In response to the user input, the adjustment unit 17 adjusts the task flow selected by the cursor 302. In one example, the adjustment unit 17 increases the required time of at least one task (a work task or a connecting task) among the multiple tasks that make up the task flow, thereby shortening the waiting time.

[0047] An example of task flow adjustment will be described with reference to Fig. 7. Fig. 7 is a flow chart showing an example of a detailed procedure of the adjustment.

[0048] In step S181, the adjustment unit 17 acquires the estimated cycle time of the selected task flow and the required time of each task of the task flow. These pieces of time-related data have already been obtained by simulation in the flow generation unit 12, and the adjustment unit 17 acquires the data.

[0049] In step S182, the adjustment control unit 18 determines whether the task flow is adjustable. When the task flow indicates the operations of a plurality of robots 2, the adjustment control unit 18 may determine whether the task flow is adjustable while satisfying the concurrency constraint. In one example, the adjustment control unit 18 determines whether the estimated cycle time can be increased so that the estimated cycle time does not exceed the reference cycle time. If the estimated cycle time can be increased, the adjustment control unit 18 determines that the task flow is adjustable, and if not, determines that the task flow cannot be adjusted. In another example, the adjustment control unit 18 determines whether the required time of at least one task (work task or connecting task) can be increased, regardless of whether the estimated cycle time is increased. If the required time can be increased, the adjustment control unit 18 determines that the task flow is adjustable, and if not, determines that the task flow cannot be adjusted.

[0050] If the task flow is adjustable (YES in step S182), the process proceeds to step S183. In step S183, the adjustment unit 17 selects one waiting section from the task flow. For example, the adjustment unit 17 selects the waiting section with the longest waiting time in the task flow.

[0051] In step S184, the adjustment unit 17 increases the required time of at least one task (work task or connecting task) located upstream of the selected waiting section. The "task located upstream of the waiting section" refers to a task that is executed before the waiting section when the task flow (in other words, the job) is executed. For example, the adjustment unit 17 may increase the required time of a task located immediately before the selected waiting section. When the waiting section with the longest waiting time is selected, the adjustment unit 17 increases the required time of at least one task so as to shorten the longest waiting time. The adjustment unit 17 may increase the required time of at least one task so as to shorten the difference between the estimated cycle time of the task flow and the reference cycle time. In this process, the adjustment unit 17 extends the estimated cycle time while maintaining the estimated cycle time equal to or less than the reference cycle time. Alternatively, the adjustment unit 17 may increase the required time of at least one task so as not to change the difference between the estimated cycle time of the task flow and the reference cycle time.

[0052] The adjustment unit 17 may increase only the required time of a specific type of task. For example, the adjustment unit 17 may increase the required time of at least one connecting task without changing the required time of each of the multiple work tasks. This means increasing the required time of a task that is automatically inserted by the programming support device 4 without affecting the task defined by the user. Alternatively, the adjustment unit 17 may increase the required time of at least one task (work task or connecting task) whose required time can be increased. In one example, each of the multiple tasks has an adjustment possibility flag indicating whether or not the required time can be increased. For example, each work task and each connecting task has an adjustment possibility flag. This adjustment possibility flag may be set in advance by the user. The adjustment unit 17 refers to each adjustment possibility flag to identify a task whose required time can be increased, and increases the required time of the task.

[0053] To increase the time required for a task, the adjustment unit 17 may reduce the movement speed of the robot 2 in that task below its current value, or may lengthen the path of the robot 2 in that task above its current value. Alternatively, the adjustment unit 17 may execute both of the following for one task: reducing the movement speed of the robot 2 and lengthening the path.

[0054] In step S185, the adjustment unit 17 checks whether interference occurs in the task flow in which the required time of at least one task (work task or connecting task) has been increased, i.e., in the adjusted task flow. For example, the adjustment unit 17 executes a simulation of the task flow to check whether interference occurs in at least one robot 2.

[0055] If interference is confirmed in the adjusted task flow (YES in step S186), the process proceeds to step S187. In step S187, the adjustment unit 17 cancels the increase in the required time performed in step S184. For example, the adjustment unit 17 executes the cancellation by discarding the adjusted task flow. After step S187, the process returns to step S182. In this case, the adjustment control unit 18 executes the process of step S182 again for the task flow before being adjusted. The adjustment control unit 18 determines whether the task flow can be adjusted, further taking into consideration the cancellation process in step S187.

[0056] If no interference is confirmed in the adjusted task flow (NO in step S186), the process returns to step S182. In this case, the adjustment control unit 18 executes the process of step S182 for the adjusted task flow. That is, when it is further possible to increase the required time of at least one task (work task or connecting task) among the multiple tasks, the adjustment control unit 18 instructs the adjustment unit 17 to increase the required time of the at least one task.

[0057] If the task flow is not adjustable (NO in step S182), the adjustment unit 17 ends the process of step S18.

[0058] An example of adjustment of a task flow will be described with reference to Fig. 8. Fig. 8 is a diagram showing an example of a process for increasing the time required for a task in a task flow 210. The task flow 210 shows the operation of one robot 2. The symbol "S" indicates the start posture of the robot 2, and the symbol "E" indicates the end posture of the robot 2. From the start posture to the end posture, the task flow 210 includes, in this order, a connecting task 211, a work task 212, a waiting section 213, a connecting task 214, a work task 215, a connecting task 216, a waiting section 217, a work task 218, and a connecting task 219.

[0059] In one example, the adjustment unit 17 selects the waiting section 217 with the longest waiting time in the task flow 210 (step S183). Next, the adjustment unit 17 increases the required time of at least one task (work task or connecting task) located upstream of the waiting section 217. For example, the adjustment unit 17 increases the required time of at least one of the connecting task 211, the work task 212, the connecting task 214, the work task 215, and the connecting task 216 (step S184). In the example of FIG. 8, the adjustment unit 17 increases the required time of the connecting task 216 located immediately before the waiting section 217 so as to shorten the waiting section 217.

[0060] If no interference occurs in the task flow 210 even if the required time of the connecting task 216 is increased, and if the task flow 210 can be further adjusted, the adjustment unit 17 selects the waiting section 213 with the longest waiting time in the task flow 210 (step S183). Next, the adjustment unit 17 increases the required time of at least one task (work task or connecting task) located upstream of the waiting section 213. For example, the adjustment unit 17 increases the required time of at least one of the connecting task 211 and the work task 212 (step S184). In the example of FIG. 8, the adjustment unit 17 increases the required time of the connecting task 211 so as to shorten the waiting section 213. In this example, the waiting section 213 is eliminated as a result, and the connecting task 214 is executed immediately after the work task 212.

[0061] If no interference occurs in the task flow 210 even when the required time of the connecting task 211 is increased, and if the task flow 210 can be further adjusted, the adjustment unit 17 may further execute a process of increasing the required time of the task. For example, the adjustment unit 17 selects the waiting section 217 having the longest waiting time in the task flow 210 (step S183). Then, the adjustment unit 17 may increase the required time of at least one of the connecting task 211, the work task 212, the connecting task 214, the work task 215, and the connecting task 216 (step S184).

[0062] 8, the adjustment unit 17 may increase the estimated cycle time of the job realized by the task flow 210 by increasing the required time for at least one of the connecting tasks 211, 216. Alternatively, the adjustment unit 17 may increase the required time for at least one of the connecting tasks 211, 216 without changing the estimated cycle time.

[0063] Returning to FIG. 5, in step S19, the program generation unit 19 generates an operation program based on the task flow determined by the user. In one example, when the user clicks the program button 304, the reception unit 11 receives a user input instructing the generation of an operation program corresponding to the selected task flow. In response to the user input, the program generation unit 19 generates an operation program for causing one or more robots 2 to execute the task flow selected by the cursor 302. In one example, the program generation unit 19 sets, based on the task flow, the execution order of each work task, the allocation of multiple work tasks to one or more robots 2 (i.e., the correspondence between the robots 2 and the work tasks), each transition task in which the air cut path and transition time are automatically set, and the waiting time of the robot between the work task and the transition task. Based on the settings, the program generation unit 19 generates at least one operation program for operating one or more robots 2. In one example, the program generation unit 19 generates, for each of the multiple robots 2, an operation program specialized for that robot 2.

[0064] In step S20, the program generation unit 19 outputs the generated operation program. For example, the program generation unit 19 may store the operation program in a storage unit such as the storage 163, or may transmit the operation program to another computer such as the robot controller 3. Alternatively, the program generation unit 19 may display the operation program on the monitor 20 in the form of text, a video or a still image using computer graphics (CG). The programming support device 4 may execute additional processing such as a further interference check on the output operation program. In one example, the program generation unit 19 outputs at least one operation program to at least one robot controller 3, and each robot controller 3 operates one or more robots 2 based on the operation program.

[0065] In the process flow S1, the adjustment unit 17 adjusts the task flow selected by the user. As another example, the adjustment unit 17 may automatically adjust the task flow without receiving user input. An example of the automatic adjustment will be described with reference to FIG. 9. FIG. 9 is a flowchart showing another example of processing in the programming support device 4 as a process flow S1A. That is, the programming support device 4 executes the process flow S1A.

[0066] The process flow S1A differs from the process flow S1 in that it does not include step S18, but includes step S18A instead. Steps S11 to S13 are the same as the process flow S1. In the following step S18A, the adjustment unit 17 adjusts each of the at least one generated task flow. The adjustment unit 17 executes the processing of steps S181 to S187 shown in FIG. 7 for each task flow. Steps S14 and S15 following step S18A are the same as the process flow S1. When the number of robots is not changed (NO in step S15), steps S16, S17, S19, and S20 are executed in the same manner as in the process flow S1. Therefore, the difference between the process flow S1 and the process flow S1A is whether the adjustment unit 17 adjusts the task flow in response to a user input or automatically adjusts the task flow without accepting the user input.

[0067] [program] Each functional module of the programming support device 4 is realized by loading a planning program onto the processor 161 or memory 162 and having the processor 161 execute the program. The planning program includes code for realizing each functional module of the programming support device 4. The processor 161 operates the input / output port 164 in accordance with the planning program, and executes reading and writing of data in the memory 162 or storage 163. Each functional module of the programming support device 4 is realized by such processing.

[0068] The planning program may be provided in a state where it is fixedly recorded on a non-transitory recording medium such as a CD-ROM, a DVD-ROM, a semiconductor memory, etc. Alternatively, the planning program may be provided via a communication network as a data signal superimposed on a carrier wave.

[0069] [effect] As described above, a planning system according to one aspect of the present disclosure includes a cycle time estimation unit that calculates an estimated cycle time of a job based on a simulation, and a flow generation unit that generates at least one task flow for executing the job by at least one robot based on a reference cycle time that is preset for the job and the estimated cycle time.

[0070] A planning method according to an aspect of the present disclosure is executed by a planning system including at least one processor, the planning method including the steps of: calculating an estimated cycle time of a job based on a simulation; and generating at least one task flow for executing the job by at least one robot based on a reference cycle time preset for the job and the estimated cycle time.

[0071] A planning program according to one aspect of the present disclosure causes a computer to execute the steps of: calculating an estimated cycle time of a job based on a simulation; and generating at least one task flow for executing the job by at least one robot based on a predetermined reference cycle time for the job and the estimated cycle time.

[0072] In this aspect, since a task flow is generated based on a given reference cycle time and an estimated cycle time, planning for realizing effective robot control becomes possible. For example, it is possible to realize robot control that conforms to the reference cycle time.

[0073] In a planning system according to another aspect, the flow generation unit may generate, as at least one task flow, a plurality of task flows having different estimated cycle times. The planning system may further include a result generation unit that stores the plurality of task flows in the storage unit as planning results. In this case, the plurality of task flows generated based on a given reference cycle time can be obtained as planning results.

[0074] In the planning system according to another aspect, the flow generator may generate at least one task flow having an estimated cycle time equal to or less than a reference cycle time, whereby a task flow capable of completing a job within a given reference cycle time can be obtained.

[0075] In the planning system according to another aspect, the flow generator may generate at least a task flow in which the difference between the estimated cycle time and the reference cycle time is minimal. This process makes it possible to obtain a task flow that can complete a job within a given reference cycle time. Such a task flow can improve the utilization rate of the robot during the reference cycle time. Therefore, this is an example of effective robot control planning.

[0076] In the planning system according to another aspect, the flow generator may generate at least a task flow with a minimum estimated cycle time. In this case, a task flow that can complete a job in the shortest time can be obtained. This is an example of effective robot control.

[0077] In another aspect, the planning system may further include an adjustment unit that increases a required time of at least one of the tasks constituting at least one of the at least one task flow. By increasing the required time of the task, the availability rate of the robot in the task flow can be improved. Therefore, this is an example of effective planning of robot control.

[0078] In the planning system according to another aspect, the adjustment unit may increase the duration of at least one task of at least one of the at least one task flows so as to reduce the difference between the estimated cycle time and the reference cycle time. This process may obtain more task flows that can complete a job within the given reference cycle time. Such task flows may increase the utilization rate of the robot during the reference cycle time. This is therefore an example of effective robot control planning.

[0079] In the planning system according to another aspect, the plurality of tasks may include a plurality of predefined work tasks and a transition task located between the work tasks, and the adjustment unit may increase the required time of the transition task without changing the required time of each of the plurality of work tasks. This process can improve the operating rate of the robot in the task flow, for example, without affecting the work tasks defined by the user.

[0080] In the planning system according to another aspect, the adjustment unit may select a waiting section in which the waiting time between two consecutive tasks is the longest, and increase the required time of at least one task located upstream of the waiting section so as to shorten the longest waiting time. Since the longest waiting time is shortened by this process, the operating rate of the robot can be increased.

[0081] In the planning system according to another aspect, the adjustment unit may increase the required time of a task located immediately before the wait section. By adjusting the task located immediately before the wait section, the wait time can be easily shortened while limiting the extent to which the adjustment affects the task flow.

[0082] In a planning system according to another aspect, each of the tasks may have an adjustment flag indicating whether or not the required time can be increased, and the adjustment unit may increase the required time of at least one task for which the required time can be increased. Since the required time is increased only for the task for which the required time can be changed, the adjustment can be performed without affecting other parts of the task flow.

[0083] In the planning system according to another aspect, the adjustment unit may reduce the motion speed of the robot in at least one task so as to increase the required time. This method makes it possible to increase the required time in a simple manner. In addition, by reducing the motion speed of the robot, it is expected that the product life of the robot will be extended.

[0084] In the planning system according to another aspect, the adjuster may lengthen the path of the robot in the task so as to increase the required time. This process allows the required time to be increased without decreasing the motion speed of the robot. Since the motion speed of the robot is maintained, no extra load is placed on the robot.

[0085] The planning system according to another aspect may further include an adjustment control unit that, when it is possible to increase the required time of at least one of the tasks, configures the adjustment unit to increase the required time of the at least one task. Since the required time of the task is increased as much as possible, it is possible to increase the operating rate of the robot as much as possible.

[0086] The planning system according to another aspect may further include a receiving unit that receives a user input instructing an increase in the required time. The adjusting unit may increase the required time in response to the user input. In this case, the required time of the task can be adjusted in response to a user request.

[0087] The planning system according to another aspect may further include an evaluation unit that calculates, for each of at least one task flow, an evaluation value for at least one robot that executes the task flow. In this case, not only the task flow itself but also information on the robot that executes the task flow can be obtained.

[0088] In the planning system according to another aspect, the evaluation unit may calculate, as the evaluation value, an operating rate that is a ratio of the operation time of at least one robot to an estimated cycle time for each of at least one task flow. In this case, it is possible to grasp how long the robot actually operates in each task flow.

[0089] In the planning system according to another aspect, the evaluation unit may calculate a product lifespan of the at least one robot for each of the at least one task flow based on a load applied to the at least one joint axis of the robot in the task flow as an evaluation value. In this case, it is possible to know how long the robot can be used for each task flow.

[0090] In the planning system according to another aspect, the evaluation unit may calculate, as the evaluation value, a throughput of the at least one robot for each of the at least one task flow based on an estimated cycle time. In this case, it is possible to grasp how much added value the robot creates for each task flow.

[0091] The planning system according to another aspect may further include a display control unit that causes a display device to display at least one task flow as a planning result. In this case, the planning result can be visually conveyed to a user.

[0092] The planning system according to another aspect may further include a program generation unit that generates an operation program for causing one or more robots to execute a task flow determined by a user among at least one task flow. In this case, the operation program can be generated according to the task flow determined by the user.

[0093] A robot system according to one aspect of the present disclosure includes one or more robots, the planning system, and one or more robot controllers that operate the one or more robots based on the generated operation program. In this aspect, effective robot control can be achieved.

[0094] [Variations] The present disclosure has been described in detail above based on the embodiments. However, the present disclosure is not limited to the above examples. The present disclosure can be modified in various ways without departing from the spirit and scope of the present disclosure.

[0095] In the above example, the programming support device 4 displays at least one task flow as a planning result on a display device, but the planning system may output the planning result in other ways. For example, the planning system may store the planning result in a given storage unit or transmit it to another computer.

[0096] The functional configuration of the planning system is not limited to the above example, and the planning method according to the present disclosure may be executed using a functional configuration different from the above example.

[0097] The hardware configuration of the planning system is not limited to the implementation of each functional module by executing a program. For example, at least a part of the functional modules may be configured with a logic circuit specialized for the function, or may be configured with an ASIC (Application Specific Integrated Circuit) that integrates the logic circuit.

[0098] The processing procedure of the method executed by at least one processor is not limited to the above example. For example, some of the steps (processing) described above may be omitted, or each step may be executed in a different order. In addition, two or more of the steps described above may be combined, or some of the steps may be modified or deleted. Alternatively, other steps may be executed in addition to each of the steps described above.

[0099] When comparing the magnitude of two numbers within a computer system or computer, either of the two criteria "greater than or equal to" and "greater than" can be used, or either of the two criteria "less than or equal to" and "less than" can be used. [Explanation of symbols]

[0100] 1...robot system, 2...robot, 3...robot controller, 4...programming support device, 10...main body, 11...reception unit, 12...flow generation unit, 13...cycle time estimation unit, 14...evaluation unit, 15...generation unit, 16...display control unit, 17...adjustment unit, 18...adjustment control unit, 19...program generation unit, 20...monitor, 30...input device, 200, 210...task flow, 201-203, 213, 217...waiting section, 212, 215, 218...work task, 211, 214, 216, 219...connecting task, 300...screen, 301...table, 302...cursor, 303...optimization button, 304...program button.

Claims

1. a cycle time estimation unit that calculates an estimated cycle time of a job based on a simulation; a flow generating unit that generates a plurality of task flows for executing the job by at least one robot based on a reference cycle time preset for the job and the estimated cycle time; a result generation unit that stores the plurality of task flows in a storage unit as a planning plan that indicates an execution plan of the job; Equipped with the flow generation unit generates the plurality of task flows, each of which has an estimated cycle time equal to or less than the reference cycle time, and the estimated cycle times differ among the plurality of task flows. Planning system.

2. the flow generation unit generates at least a task flow in which a difference between the estimated cycle time and the reference cycle time is minimal; The planning system according to claim 1 .

3. The flow generation unit generates at least a task flow having a minimum estimated cycle time.

3. A planning system according to claim 1 or 2.

4. a cycle time estimation unit that calculates an estimated cycle time of a job based on a simulation; a flow generating unit that generates at least one task flow for executing the job by at least one robot based on a reference cycle time preset for the job and the estimated cycle time; an adjustment unit that increases a required time of at least one of a plurality of tasks constituting at least one of the at least one task flows so as to reduce a difference between the estimated cycle time and the reference cycle time; Equipped with The plurality of tasks include a plurality of predefined work tasks and a connecting task located between the work tasks; the adjustment unit increases the required time of the connecting task without changing the required time of each of the plurality of work tasks. Planning system.

5. The adjustment unit is Select a waiting section in which the waiting time between two consecutively located tasks is the longest; increasing the required time of at least one of the connecting tasks located upstream of the waiting section so as to shorten the longest waiting time; The planning system according to claim 4 .

6. the adjustment unit increases the required time of the connecting task located immediately before the waiting section. The planning system according to claim 5 .

7. Each of the one or more bridge tasks has an adjustment possibility flag indicating whether the required time can be increased, the adjustment unit increases the required time of at least one of the connecting tasks for which the required time can be increased; A planning system according to any one of claims 4 to 6.

8. The adjustment unit reduces a motion speed of the robot in at least one of the transition tasks so as to increase the required time. A planning system according to any one of claims 4 to 6.

9. The adjustment unit lengthens a path of the robot in the connecting task so as to increase the required time. A planning system according to any one of claims 4 to 6.

10. The planning system according to any one of claims 4 to 6, further comprising an adjustment control unit that, when it is further possible to increase the required time of at least one of the connecting tasks among the plurality of tasks, increases the required time of the at least one connecting task in the adjustment unit.

11. a receiving unit that receives a user input instructing to increase the required time, the adjustment unit increases the required time in response to the user input; A planning system according to any one of claims 4 to 6.

12. The planning system according to claim 1 , further comprising an evaluation unit that calculates, for each of the plurality of task flows, an evaluation value relating to the at least one robot that executes the task flow.

13. the evaluation unit calculates, as the evaluation value, an operation rate which is a ratio of an operation time of the at least one robot to the estimated cycle time for each of the plurality of task flows. The planning system according to claim 12.

14. the evaluation unit calculates, as the evaluation value, a product life of the at least one robot for each of the plurality of task flows based on a load applied to a joint shaft of the at least one robot in the task flow; The planning system according to claim 12.

15. the evaluation unit calculates, as the evaluation value, a throughput of the at least one robot for each of the plurality of task flows based on the estimated cycle time; The planning system according to claim 12.

16. The planning system according to claim 1 , further comprising a display control unit that causes a display device to display the plurality of task flows as a planning result.

17. The planning system according to claim 1 or 2, further comprising a program generation unit that generates an operation program for causing one or more of the robots to execute a task flow determined by a user from among the plurality of task flows.

18. One or more robots; A planning system according to claim 17; one or more robot controllers that operate the one or more robots based on the generated operation program; A robot system comprising:

19. 1. A planning method performed by a planning system comprising at least one processor, comprising: calculating an estimated cycle time for the job based on the simulation; generating a plurality of task flows for executing the job by at least one robot based on a reference cycle time preset for the job and the estimated cycle time; storing the plurality of task flows in a storage unit as a planning plan indicating an execution plan of the job; Including, In the step of generating the plurality of task flows, the plurality of task flows are generated, the estimated cycle time of each of the plurality of task flows being equal to or less than the reference cycle time, and the estimated cycle times differ among the plurality of task flows. Planning methods.

20. calculating an estimated cycle time for the job based on the simulation; generating a plurality of task flows for executing the job by at least one robot based on a reference cycle time preset for the job and the estimated cycle time; storing the plurality of task flows in a storage unit as a planning plan indicating an execution plan of the job; Run the following on your computer: In the step of generating the plurality of task flows, the plurality of task flows are generated, the estimated cycle time of each of the plurality of task flows being equal to or less than the reference cycle time, and the estimated cycle times differ among the plurality of task flows. Planning program.

21. 1. A planning method performed by a planning system comprising at least one processor, comprising: calculating an estimated cycle time for the job based on the simulation; generating at least one task flow for executing the job by at least one robot based on a reference cycle time preset for the job and the estimated cycle time; increasing a required time of at least one of a plurality of tasks constituting at least one of the at least one task flows so as to reduce a difference between the estimated cycle time and the reference cycle time; Including, The plurality of tasks include a plurality of predefined work tasks and a connecting task located between the work tasks; In the step of increasing the required time, the required time of the connecting task is increased without changing the required time of each of the plurality of work tasks. Planning methods.

22. calculating an estimated cycle time for the job based on the simulation; generating at least one task flow for executing the job by at least one robot based on a reference cycle time preset for the job and the estimated cycle time; increasing a required time of at least one of a plurality of tasks constituting at least one of the at least one task flows so as to reduce a difference between the estimated cycle time and the reference cycle time; Run the following on your computer: The plurality of tasks include a plurality of predefined work tasks and a connecting task located between the work tasks; In the step of increasing the required time, the required time of the connecting task is increased without changing the required time of each of the plurality of work tasks. Planning program.

Citation Information

Patent Citations

  • Method for evaluating operating time of robot and device therefor

    JP1995210223A

  • Automatic teaching program generating device

    JP1996202429A

  • Process design device

    JP2006031122A

  • Simulator for estimating life of robot speed reducer

    JP2013144349A

  • Programming support device, robot system, and programming support method

    JP2020168666A