Planning System, Robot System, Planning Method and Computer-Readable Storage Medium
The planning system addresses interference in multi-robot task planning by generating and updating task flows based on simultaneous execution constraints, optimizing task execution and reducing collision risks.
Patent Information
- Application Number
- CN202111560426.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-01-19
- Filing Date
- 2021-12-20
- Publication Date
- 2025-07-15
- Estimated Expiration
- 2041-12-20
AI Technical Summary
The prior art is difficult to effectively perform robot control planning, especially to avoid interference and optimize the generation of task flows when multiple robots work together.
The task flow is generated by the planning system, confirm whether the robot will interfere with other objects, and update the simultaneous execution limit when confirming the interference to regenerate the task flow, including the functional modules of the flow generation, confirmation unit, update unit and re-execution unit, and optimize the task flow using traveler issues.
Effectively avoid interference between robots, optimize task flow, shorten interference confirmation time, and improve the planning efficiency of robot control.
Smart Images

Figure CN114815798B_ABST
Abstract
Description
Technical Field
[0001] One aspect of the present disclosure relates to a planning system, a robot system, a planning method, and a computer-readable storage medium. Background Art
[0002] In Patent Document 1, a robot path generation device is described that generates a robot path between arbitrarily set start and end points based on the result of a machine learning process based on a data set.
[0003] Prior Art Documents
[0004] Patent Documents
[0005] Patent Document 1: International Publication No. 2018 / 143003. Summary of the Invention
[0006] Problems to be Solved by the Invention
[0007] It is desired to effectively execute the planning of robot control.
[0008] Means for Solving the Problems
[0009] A planning system according to one aspect of the present disclosure includes: a flow generation unit that generates a task flow based on simultaneous execution restrictions related to the simultaneous execution of tasks by multiple robots, the task flow including a plurality of predefined job tasks and connection tasks located between the job tasks; a confirmation unit that confirms whether a robot interferes with other objects in the connection tasks of the generated task flow; an update unit that, when it is confirmed that interference will occur, updates the simultaneous execution restrictions, the simultaneous execution restrictions being related to the connection tasks of the generated task flow; and a re-execution unit that causes the flow generation unit to re-generate the task flow based on the updated simultaneous execution restrictions.
[0010] A planning method according to one aspect of the present disclosure is executed by a planning system including at least one processor. The planning method includes the following steps: generating a task flow based on simultaneous execution restrictions related to the simultaneous execution of tasks by multiple robots, the task flow including a plurality of predefined job tasks and connection tasks located between the job tasks; confirming whether a robot interferes with other objects in the connection tasks of the generated task flow; when it is confirmed that interference will occur, updating the simultaneous execution restrictions, the simultaneous execution restrictions being related to the connection tasks of the generated task flow; and re-generating the task flow based on the updated simultaneous execution restrictions.
[0011] One aspect of the present disclosure relates to a planning program that causes a computer to perform the following steps: generating a task flow based on simultaneous execution restrictions related to the simultaneous execution of tasks by multiple robots, the task flow including a plurality of predefined job tasks and connection tasks located between the job tasks; confirming whether a robot interferes with other objects in the connection tasks of the generated task flow; when it is confirmed that interference will occur, updating the simultaneous execution restrictions, the simultaneous execution restrictions being related to the connection tasks of the generated task flow; and regenerating the task flow based on the updated simultaneous execution restrictions.
[0012] One aspect of the present disclosure relates to a robot system including: one or more robots; the above-mentioned planning system; and one or more robot controllers that cause the one or more robots to act based on the generated action program.
[0013] Effects of the Invention
[0014] Based on one aspect of the present disclosure, the planning of robot control can be effectively performed. Description of the Drawings
[0015] Figure 1 It is a diagram showing an example of the structure of a robot system.
[0016] Figure 2 It is a diagram showing an example of a task flow.
[0017] Figure 3 It is a diagram showing an example of the hardware structure of a programming assistance device.
[0018] Figure 4 It is a diagram showing an example of the functional structure of a programming assistance device.
[0019] Figure 5 It is a flowchart showing an example of the operation of a programming assistance device.
[0020] Figure 6 It is a flowchart showing an example of the operation of a programming assistance device.
[0021] Figure 7 It is a diagram showing an example of inserting a standby task based on a candidate posture.
[0022] Figure 8 It is a diagram showing an example of multiple task patterns.
[0023] Figure 9 It is a diagram showing an example of the traveling salesman problem. Detailed Description of the Invention
[0024] 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 denoted by the same reference numerals, and repeated descriptions are omitted.
[0025] [Robot System]
[0026] In the present embodiment, the planning system of the present disclosure is applied to the programming assistance device 4 of the robot system 1. In the present disclosure, the planning system refers to a computer system for determining the actions of at least one robot. The robot system 1 is a system that automates various operations such as processing and assembly by having the robot execute the actions taught by the operator. Figure 1 This is a diagram showing an example of the structure 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 assistance device 4. Figure 1 Three robots 2 and three robot controllers 3 are shown, and a structure in which one robot 2 is connected to one robot controller 3 is shown. However, the number of each device and the connection method are not limited to Figure 1 the example. For example, one robot controller 3 may be connected to multiple robots 2.
[0027] In one example, the robot 2 is a multi-axis serial link type vertical articulated robot, configured to be able to perform various operations while holding a tool at its front end 5. The robot 2 can freely change the position and posture of the front end 5 within a specified range. The robot 2 may be a 6-axis vertical articulated robot or a 7-axis vertical articulated robot with an additional redundant axis added to the 6 axes. In one example, multiple robots 2 are configured such that for the same workpiece arranged at the same position, the same processing can be performed by any robot 2.
[0028] The robot controller 3 is a device that controls the robot 2 according to a pre-generated action program. In one example, the action program contains data for controlling the robot 2, such as a path representing the trajectory of the robot 2. The trajectory of the robot 2 refers to the action path of the robot 2 or its components. For example, the trajectory of the robot 2 may be the trajectory of the front end 5. In one example, the robot controller 3 calculates the joint angle target values (the angle target values of each joint of the robot 2) for making the position and posture of the front end 5 coincide with the target values shown in the action program, and controls the robot 2 based on these angle target values.
[0029] Under the control of the robot controller 3, at least one robot 2 performs a series of processes. In the present disclosure, this series of processes is also referred to as an operation. Additionally, the process that constitutes the smallest unit of this operation is referred to as a task. Therefore, an operation includes one or more tasks. Each robot 2 can perform various tasks, such as "acquire a component", "place a component", "assemble a component (onto a workpiece)", "assume a standby posture", etc. One task can include a path that is the trajectory of the robot 2 in that task.
[0030] In one example, the robot 2 can also be a self-propelled mobile robot. In this case, before starting the process, the robot 2 can move within the operation space according to the motion program and move to a given position. For example, the robot 2 can move on its own while avoiding other objects. This robot 2 can repeat the operation (i.e., at least one task) shown in the motion program in the configuration shown in the motion program.
[0031] The programming assistance device 4 is a device that generates a motion program. For example, the programming assistance device 4 generates a motion program representing the operation performed by each of one or more robots 2. In one example, the programming assistance device 4 evaluates at least some of the constituent elements of the operation, such as the path, the posture of the robot 2 at a certain point in time, etc. Then, the programming assistance device 4 generates a motion program based on its evaluation result. The programming assistance device 4 can also perform a simulation and perform this evaluation. Simulation refers to the process of virtually executing at least a part of the motion program. More specifically, simulation refers to the process of virtually executing at least a part of the motion program on a computer without actually causing the robot 2 to move. In one example, the simulation is a process of virtually executing at least a part of the motion program on a virtual space configured with the robot 2 and other objects. Other objects refer to objects arranged around the robot 2, and for example, can be other robots 2, workpieces, other manufacturing devices, etc.
[0032] [Task flow]
[0033] In one example, the programming assistance device 4 generates a task flow for effectively executing the operation and generates a motion program for causing one or more robots 2 to execute this task flow. In the present disclosure, a task flow refers to information indicating which robot performs which task in what order and at what timing.
[0034] In one example, the task flow includes multiple job tasks, multiple connection tasks, and multiple standby tasks. A job task refers to a task preset (defined) by a user in advance. A connection task refers to a task for guiding the robot 2 to the next job task, which is located between adjacent job tasks. A standby task refers to a task for making the robot standby. The standby task is set to correspond to the start and end of the job task respectively. As a result, the standby task is located between the job task and the connection task. The connection task and the standby task are automatically set (inserted) by the programming assistance device 4.
[0035] In the present disclosure, the path within the job task is referred to as the "job path", and the path within the connection task is referred to as the "idle cut path". The job path is preset (defined) by the user in advance when generating the job task. The idle cut path connects the end point of the job path in the previous job task and the start point of the job path in the subsequent job task. In one example, for instance, by setting at least one teaching point other than the start point and the end point, the idle cut path is automatically set. A teaching point refers to a reference point set to define the path. Since the robot 2 does not move during the standby task, the standby task does not have a path.
[0036] Figure 2 It is a diagram showing an example of the task flow. The task flow in this example shows that two robots 2 (robot Ra, Rb) cooperate to execute one job, and this job includes five job tasks Ta, Tb, Tc, Td, Te. In Figure 2 it, the symbol "S" represents the start pose (initial pose) of the robot 2, and the symbol "E" represents the end pose of the robot 2. In this example, the robot Ra sequentially executes the job tasks Ta, Tb, Te, and the robot Rb sequentially executes the job tasks Tc, Td.
[0037] Standby tasks are inserted corresponding to the start and end of the job task respectively. The connection task is inserted between the standby task corresponding to the end of the previous job task and the standby task corresponding to the start of the subsequent job task. As a result, it is located between adjacent job tasks. As Figure 2 shown, in one example, the connection task is also inserted between the start pose and the standby task corresponding to the start of the first job task, and further, is also inserted between the standby task corresponding to the end of the last job task and the end pose.
[0038] The programming assistance device 4 generates a task flow based on the simultaneous execution restrictions related to the simultaneous execution of tasks by multiple robots 2. The simultaneous execution restrictions are a type of restriction (condition) imposed when the robots 2 operate. In one example, the simultaneous execution restrictions indicate the timing at which multiple robots 2 can execute multiple tasks in parallel. When multiple robots 2 cannot execute multiple tasks in parallel within a certain time period (i.e., when tasks cannot be executed simultaneously), within that time period, only one robot 2 executes the task, and the other robots 2 standby without executing tasks. This standby is an example of interlocking, which is a mechanism for starting the execution of the next action only after a given condition is met.
[0039] In Figure 2 the example, after the robot Rb executes the job task Tc, it stands by until the robot Ra finishes the job task Tb, and then executes the next connected task. After the robot Ra executes the next connected task of the job task Tb, it stands by until the robot Rb finishes the job task Td, and then executes the job task Te. In this example, the actual time period during which the robot Ra stands by is from the connected task after the execution of the job task Tb until the execution of the job task Te. The actual time period during which the robot Rb stands by is from the execution of the job task Tc until the execution of the next connected task. A standby time greater than 0 is set for the two standby tasks corresponding to these two standby times, and 0 is set as the standby time for other standby tasks. In the standby tasks with a standby time of 0, the robot 2 does not remain stationary but continuously executes adjacent job tasks and standby tasks. Figure 2 The right side of
[0040] [Programming Assistance Device]
[0041] Figure 3 is a diagram showing an example of the hardware structure of the programming assistance device 4. The programming assistance device 4 includes a main body 10, a monitor 20, and an input device 30.
[0042] The main body 10 is composed of at least one computer. The main body 10 has a circuit 160, and the circuit 160 has at least one processor 161, a memory 162, a storage unit 163, and an input / output port 164. The storage unit 163 records programs for constituting each functional module of the main body 10. The storage unit 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 programs loaded from the storage unit 163, operation results of the processor 161, etc. The processor 161 executes programs in cooperation with the memory 162 to constitute each functional module. The input / output port 164 performs electrical signal input / output between the monitor 20, the input device 30, and the robot controller 3 based on instructions from the processor 161.
[0043] The monitor 20 is a device for displaying information output from the main body 10. The monitor 20 can be arbitrary as long as it can perform graphic display. As an example thereof, a liquid crystal panel or the like can be cited. The input device 30 is a device for inputting information to the main body 10. The input device 30 can be any device as long as it can input desired information. As an example thereof, a keyboard, a mouse, or the like can be cited.
[0044] The monitor 20 and the input device 30 can also be integrated as a touch panel. For example, like a tablet computer, the main body 10, the monitor 20, and the input device 30 can also be integrated.
[0045] Figure 4 FIG. is an example showing the functional structure of the programming assistance device 4. In one example, the programming assistance device 4 includes an acquisition unit 110, a mode generation unit 120, a flow determination unit 130, and a program generation unit 140 as functional modules. The acquisition unit 110 is a functional module for acquiring data required to generate an action program. The mode generation unit 120 is a functional module for generating a plurality of task modes for one job. In the present disclosure, a task mode is information indicating an execution method of a job that can be adopted as a task flow. In one example, each task mode represents a possible combination of the correspondence between the robot 2 and the task and the execution order of the task. In one example, the mode generation unit 120 generates a plurality of task modes such that each task mode includes a plurality of job tasks, a plurality of connection tasks, and a plurality of standby tasks. The flow determination unit 130 is a functional module for determining one task flow for generating an action program. The program generation unit 140 is a functional module for generating at least one action program for causing one or more robots 2 to execute the determined task flow.
[0046] The mode generation unit 120 includes a task insertion unit 121 and a restriction setting unit 122. The task insertion unit 121 is a functional module for inserting connection tasks and standby tasks into a plurality of task modes, respectively. Therefore, the task insertion unit 121 functions as a connection task insertion unit and a standby task insertion unit. The restriction setting unit 122 is a functional module for setting restrictions in a plurality of task modes.
[0047] The flow determination unit 130 includes a flow generation unit 131, a path generation unit 132, a confirmation unit 133, and an update unit 134. The flow generation unit 131 is a functional module that generates a task flow based on the simultaneous execution limit and multiple task modes. The path generation unit 132 is a functional module that generates an empty cut path in the connection tasks of the task flow. The confirmation unit 133 is a functional module that confirms whether the robot 2 interferes with other objects in the connection tasks (empty cut paths) of the task flow. Interference means that objects come into contact or collide with each other. For example, it means that the robot 2 comes into contact or collides with other objects. The update unit 134 is a functional module that updates the simultaneous execution limit when interference is detected, and this simultaneous execution limit is related to the connection tasks of the generated task flow. When this update process is performed, the flow determination unit 130 causes the flow generation unit 131 to regenerate the task flow based on the updated simultaneous execution limit. Therefore, the flow determination unit 130 functions as a re-execution unit.
[0048] [Planning Method]
[0049] As an example of the planning method of the present disclosure, refer to Figure 5 and Figure 6 An example of a series of processing procedures executed by the programming assistance device 4 will be described. Figure 5 and Figure 6 is a flowchart showing an example of the operation of the programming assistance device 4 as the processing flow S1. That is, the programming assistance device 4 executes the processing flow S1.
[0050] In step S11, the acquisition unit 110 acquires the teaching data required to generate the action program. This teaching data is electronic data containing information required for the robot 2 to perform operations, such as representing one or more operation tasks and restrictions related to the actions of the robot 2. As an example of this restriction, examples include the configuration of each robot 2, the execution order of multiple operation tasks, the correspondence between the robot 2 and the operation tasks, the poses of the robot 2 at the start and end of the operation tasks, the action time of the robot 2 in each operation task, and the simultaneous execution limit. The teaching data may include at least one of the matters set separately for each robot 2 and the matters set commonly for one or more robots 2. Various methods can be used to acquire the teaching data. For example, the acquisition unit 110 can either accept the teaching data input by the user, read the teaching data from a given storage device based on the user input, or receive the teaching data sent from other computers.
[0051] In step S12, the task insertion unit 121 inserts standby tasks into each of the multiple operation tasks. For example, the task insertion unit 121 inserts standby tasks at the start and end of the operation tasks respectively.
[0052] In one example, the task insertion unit 121 can also set multiple candidate poses of the robot 2 for the start and end of each operation task respectively, and insert standby tasks for each of the multiple candidate poses. A candidate pose is a pose prepared as an option for determining the standby pose of the robot. The candidate pose related to the start of the operation task is a candidate for the standby pose of the robot 2 between the previous connection task and this operation task. The standby pose related to the end of the operation task is a candidate for the standby pose of the robot 2 between this operation task and the subsequent connection task. The multiple candidate poses can also include the pose of the robot 2 set (defined) by the user, that is, the taught pose. In this case, the teaching data includes this taught pose.
[0053] Figure 7 FIG. is a diagram showing an example of inserting a standby task based on candidate poses. This example shows various candidate poses for one operation task Tx. Assume that there are 3 candidate poses Ps1, Ps2, Ps3 for the start of the operation task Tx, and 3 candidate poses Pe1, Pe2, Pe3 for the end of the operation task Tx. Therefore, there are 9 combinations of candidate poses for the start and end of the operation task Tx. The task insertion unit 121 inserts standby tasks for each of the 9 combinations of the candidate poses (in other words, for each of the 18 candidate poses). The circular marks located above and below each operation task Tx represent its standby task.
[0054] Return Figure 5 , in step S13, the mode generation unit 120 generates multiple task modes based on the teaching data. In one example, the mode generation unit 120 generates multiple task modes within the range that satisfies the restrictions shown in the teaching data. For example, assume that the execution order of two operation tasks Tx and Ty is not restricted. In this case, the mode generation unit 120 can generate a task mode in which the operation task Ty is executed after the operation task Tx, a task mode in which the operation task Tx is executed after the operation task Ty, and a task mode in which the operation tasks Tx and Ty are executed in parallel. As another example, assume that two robots Ra and Rb are prepared and there is no restriction on the robot that executes the operation task Tx. In this case, the mode generation unit 120 can generate a task mode in which the robot Ra executes the operation task Tx and a task mode in which the robot Rb executes the operation task Tx.
[0055] As described above, multiple candidate poses can be set at the start and end of each operation task. In this case, the mode generation unit 120 generates multiple task modes based on the combination of candidate poses at the start and end of each operation task. When multiple candidate poses are set for each operation task, the combination of candidate poses between multiple operation tasks is also considered, so the number of generated task modes increases. In Figure 7In the case of the example, the pattern generation unit 120 generates at least nine task patterns. When multiple candidate postures are set for each of the multiple operation tasks including the operation task Tx, many task patterns will be generated.
[0056] In step S14, the task insertion unit 121 inserts a connection task into each of the multiple task patterns. The insertion of the connection task in each task pattern is performed as described below. That is, the task insertion unit 121 inserts a connection task between the standby task corresponding to the end of the previous operation task and the standby task corresponding to the start of the subsequent operation task based on the configuration of the multiple operation tasks within the task pattern. As a result, the task insertion unit 121 inserts a connection task between adjacent operation tasks. In one example, the task insertion unit 121 inserts a connection task between the start posture of the robot 2 and the standby task corresponding to the start of the first operation task, and also inserts a connection task between the standby task corresponding to the end of the last operation task and the end posture of the robot 2.
[0057] The task insertion unit 121 sets an initial value of the movement time of the robot 2 for each connection task of each task pattern. In the present disclosure, the movement time of the robot in the connection task is also referred to as the "connection time". The task insertion unit 121 assumes a straight-line non-cutting path in each connection task and calculates the movement time of the robot 2 on this straight line. The connection time is the time required for the robot 2 to move from the starting point to the ending point of the non-cutting path. The object passing through the non-cutting path can be a component of the robot 2, such as the front end 5, a tool, etc., or the entire robot 2. In either case, the task insertion unit 121 sets this required time as the initial value of the connection time in the connection task. This initial value is the minimum value of the connection time.
[0058] In step S15, the pattern generation unit 120 discards the task patterns including the postures (standby postures) that the robot cannot execute. For example, the pattern generation unit 120 performs the processing of step S15 for each candidate posture (standby posture) automatically set by the task insertion unit 121. If necessary, the pattern generation unit 120 can perform the processing of step S15 for the taught postures. A "posture that the robot cannot execute" refers to a posture that the robot cannot acquire or a posture that hinders the movement of the robot. A "posture that the robot can execute" refers to a posture that the robot can acquire and does not hinder the movement of the robot. When it is determined that the robot 2 cannot execute at least one standby posture in the task pattern, the pattern generation unit 120 discards this task pattern, and when it is determined that the robot 2 can execute all standby postures, this task pattern is retained. The pattern generation unit 120 performs this processing for each of the multiple task patterns and extracts the task patterns that the robot can execute.
[0059] The poses that the robot 2 cannot execute can be the poses that the robot 2 cannot adopt, the poses where the robot 2 interferes with other objects (excluding other robots 2), or the poses that have no continuity with the front and rear poses of the robot 2. In contrast, the poses that the robot 2 can execute can be the poses that the robot 2 can adopt, the poses where the robot 2 does not interfere with other objects (excluding other robots 2), or the poses that maintain continuity with the front and rear poses of the robot 2. The continuity of the pose means that the pose of the robot 2 can be converted from one state to the next state. The pose without continuity refers to the pose that cannot be converted between at least one of the previous pose and the next pose. That is, the pose without continuity is a singular point. The pattern generation unit 120 can also refer to the given specification data indicating the structure, movable area, etc. of the robot 2 to determine whether the robot 2 can adopt the standby pose. The pattern generation unit 120 can also refer to this specification data to determine whether the robot 2 can execute a series of actions including the standby pose and its front and rear poses. The pattern generation unit 120 can also compare the physical range of the robot 2 adopting the standby pose and the physical range of other objects, and determine the overlap of these two physical ranges as interference.
[0060] In step S16, the restriction setting unit 122 confirms the poses and the interference in the operation tasks for each of the multiple task patterns, and sets the simultaneous execution restriction. The "poses and the interference in the operation tasks" refers to the interference generated between the standby pose or the operation task of a certain robot and the standby pose or the operation task of other robots. The restriction setting unit 122 confirms whether the interference in the poses and the operation tasks occurs in each of the multiple task patterns. When it is confirmed that the interference occurs in a certain task pattern, the restriction setting unit 122 sets the simultaneous execution restriction for this task pattern based on this confirmation result so that the interference does not occur. For example, the restriction setting unit 122 sets the simultaneous execution restriction for at least one element among the multiple operation tasks and the multiple standby tasks within this task pattern.
[0061] In one example, multiple task patterns are generated through the processing including the above steps S11 to S16.
[0062] Figure 8 This is a diagram showing an example of multiple task patterns. In this example, it is assumed that two robots 2, namely robot Ra and Rb, are prepared, and at least one robot 2 executes three operation tasks Tx, Ty, and Tz. The teaching data, in addition to these operation tasks, also represents the restrictions on the execution order of the operation tasks and the restrictions on the correspondence between the robot 2 and the operation tasks. In this example, the teaching data indicates that the operation task Tz is executed after the operation tasks Tx and Ty, and the operation task Ty is executed by the robot Rb.
[0063] There is no restriction on the execution order between the job tasks Tx and Ty. Therefore, the execution timing of the job tasks Tx and Ty may overlap, or job task Tx may be executed before job task Ty, or job task Ty may be executed before job task Tx. Regarding the job tasks Tx and Tz, there is no restriction on the correspondence with the robot 2. Therefore, each of these two tasks may be executed by the robot Ra or the robot Rb. Figure 8 Six task patterns are shown as part of a plurality of task patterns corresponding to such various possibilities. In this figure, circles represent standby tasks and arrows represent connection tasks. Note that Figure 8 Another task pattern can be generated in the example of
[0064] Move to Figure 6 , in step S17, the flow generation unit 131 generates a task flow based on the simultaneous execution restriction and a plurality of task patterns. In one example, the flow generation unit 131 generates a task flow that satisfies given restrictions such as the simultaneous execution restriction and has the shortest execution time for the jobs. The execution time is the time from the time point when at least one of the one or more robots 2 starts moving from the start pose to the time point when all of the one or more robots 2 reach the end pose.
[0065] In one example, the flow generation unit 131 generates a task flow by solving the traveling salesman problem based on the simultaneous execution restriction of each of the plurality of task patterns. The traveling salesman problem is an optimization problem of finding the moving route with the minimum total moving cost among various types of moving routes where an agent (salesman) passes through all nodes each time, given a set of nodes (cities) and the moving cost between each node. The traveling salesman problem based on the simultaneous execution restriction is a process of searching for the solution with the minimum total moving cost (the moving routes of each agent) while moving the plurality of agents along the time axis on the premise of the simultaneous execution restriction, regarding the plurality of robots 2 as agents. This traveling salesman problem represents the standby tasks (standby poses) of the respective plurality of robots 2 by nodes and represents the job tasks and connection tasks by branches.
[0066] The flow generation unit 131 moves all the agents along the time axis under certain restrictions, and searches for a solution where all nodes are visited by any one agent, the movement routes of each agent can be drawn in one stroke, and the total movement cost is minimized. The generated task flow corresponds to its optimal solution. The condition that two or more robots do not pass through the same node and the same branch corresponds to an alternative restriction where each operation task, each connection task, and each standby task are each performed by only one robot 2. This means that the alternative restriction is automatically considered by solving the traveling salesman problem. In the traveling salesman problem further considering the simultaneous execution restriction, even when multiple agents are located at different nodes or branches, it is sometimes not allowed for these multiple agents to be in these positions within the same time period. As described above, the task flow with the minimum total movement cost can be the task flow with the shortest execution time. The total movement cost can also be defined by a physical quantity different from the execution time. For example, the task flow with the minimum total movement cost can also be the task flow with the minimum total movement distance (the sum of the lengths of the trajectories of one or more robots 2) of one or more robots 2.
[0067] Figure 9 is an example of the traveling salesman problem in the present disclosure. In this problem, the flow generation unit 131 sets two agents corresponding to two robots 2. The dashed line indicates the branches that the robot 201 can pass through (i.e., the operation tasks and connection tasks that the robot 201 can perform). The dash-dotted line indicates the branches that the robot 202 can pass through (i.e., the operation tasks and connection tasks that the robot 202 can perform). Each node represents a standby task, the "S" node represents the starting posture (initial posture) of the robot 2, and the "E" node represents the ending posture of the robot 2. The set of nodes and branches represented as the traveling salesman problem corresponds to multiple task patterns. As Figure 9 shown, the flow generation unit 131 searches for various solutions (task flows) such as solutions 301, 302, and 303, and finally generates a task flow with the minimum total movement cost. Solutions 301 and 302 both represent the cases where the robots 201 and 202 each perform at least one operation task. On the other hand, solution 303 represents the case where the robot 201 performs all the operation tasks and the robot 202 does not perform any operation tasks.
[0068] Return Figure 6, in step S18, the path generation unit 132 automatically generates an air cutting path in the connection task of the generated task flow. In one example, the path generation unit 132 generates a separate air cutting path to avoid interference between the robot 2 and other objects. For example, in order to generate a certain air cutting path, the path generation unit 132 generates more than one passing point for avoiding interference between the robot 2 and other objects between the end point of the operation path in the previous operation task and the start point of the operation path in the subsequent operation task. Then, the path generation unit 132 generates an air cutting path so as to sequentially pass through the more than one passing point. In order to generate an air cutting path, the path generation unit 132 can repeatedly execute a series of processes including setting of passing points and confirmation of interference avoidance. The detailed content of such a generation method is described, for example, in Japanese Patent Publication No. 4103057.
[0069] In one example, the path generation unit 132 generates an air cutting path in the connection task of the first robot so that the first robot does not interfere with the trajectories of more than one second robot (other robots other than the first robot). This process means regarding the trajectory of each second robot as an obstacle for the first robot and generating an air cutting path for the first robot so that no interference occurs between the first robot and the regarded obstacle.
[0070] In step S19, the confirmation unit 133 confirms the interference in the connection task of the task flow generated by it. "Interference in the connection task" means the interference generated between the connection task of a certain robot and the operation task, connection task, or standby posture of other robots. In one example, interference avoidance is also considered when generating the air cutting path, but since not all interferences in the connection task are confirmed in this process, the confirmation unit 133 executes this confirmation process.
[0071] In step S20, when the confirmation unit 133 confirms the interference (i.e., when interference will occur), the process proceeds to step S21. In step S21, the update unit 134 updates the simultaneous execution limit related to the connection task (idle cut path) of the generated task flow. The update unit 134 updates this simultaneous execution limit so that the confirmed interference will not occur. For example, the update unit 134 can also adjust the standby time corresponding to the standby task related to the connection task where interference occurs. In one example, the confirmation unit 133 extends or shortens the standby time. The update unit 134 can also adjust the standby time in the standby tasks of the connection tasks prior to the confirmed interference. Or, the update unit 134 can also adjust the standby time in the standby tasks of other robots 2 operating in parallel. As another example, the update unit 134 can update the connection time in the connection task after confirming the interference. The update unit 134 calculates the time required for the robot 2 to pass through the generated idle cut path, sets this required time as the connection time, and thus updates the connection time of the connection task corresponding to this idle cut path.
[0072] After step S21, the process returns to step S17. In the repeated step S17, the flow generation unit 131 regenerates a task flow. In one example, the update of the simultaneous execution limit includes at least one of the adjustment of the standby time and the update of the connection time, and the flow generation unit 131 regenerates a task flow based on the result of this adjustment or update. The flow generation unit 131 regenerates the task flow by the same method as the initial generation. However, since the simultaneous execution limit related to the connection task of the task flow generated last time is updated, in the repeated step S17, the flow generation unit 131 may generate a task flow different from the last time. Or, the flow generation unit 131 may generate the same task flow as the last time. After that, steps S18, S19, and S20 are executed for the regenerated task flow.
[0073] In step S20, when the confirmation unit 133 does not confirm the interference in the connection task (i.e., when interference will not occur), the process proceeds to step S22. In step S22, the program generation unit 140 generates an action program based on the generated task flow. In one example, the program generation unit 140 sets the execution order of each job task, the assignment of multiple job tasks to one or more robots 2 (i.e., the correspondence between the robots 2 and the job tasks), each connection task with the idle cut path and the connection time automatically set, and the standby time of the robot between the job task and the connection task based on this task flow. The program generation unit 140 generates at least one action program for causing one or more robots 2 to operate based on this setting. In one example, the program generation unit 140 generates an action program dedicated to each of the multiple robots 2.
[0074] In step S23, the program generation unit 140 outputs the generated motion program. For example, the program generation unit 140 may store the motion program in a recording medium such as the storage unit 163, or may send it to another computer such as the robot controller 3. Alternatively, the program generation unit 140 may display the motion program on the monitor 20 in the form of text, a dynamic image or a still image based on computer graphics (CG). The programming assistance device 4 may also perform additional processing such as further interference checking on the output motion program.
[0075] In one example, the program generation unit 140 outputs at least one motion program to at least one robot controller 3, and each robot controller 3 causes one or more robots 2 to act based on the motion program. The robot 2 that acts based on the motion program is obtained through the processing flow S1. Therefore, the processing flow S1 is not only an example of the planning method of the present disclosure, but also an example of the manufacturing method of the robot.
[0076] [Program]
[0077] Each functional module of the programming assistance device 4 is implemented by causing the planning program to be read into the processor 161 or the memory 162 and causing the processor 161 to execute the program. The planning program includes codes for implementing each functional module of the programming assistance device 4. The processor 161 causes the input / output port 164 to act based on the planning program, and reads and writes data in the memory 162 or the storage unit 163. Each functional module of the programming assistance device 4 is implemented through such processing.
[0078] The planning program may be fixedly recorded on a non-temporary recording medium such as a CD-ROM, a DVD-ROM, or a semiconductor memory and then provided. Alternatively, the planning program may also be provided as a data signal superimposed on a carrier wave through a communication network.
[0079] [Effect]
[0080] As described above, a planning system according to an aspect of the present disclosure includes: a flow generation unit that generates a task flow based on a simultaneous execution restriction related to the simultaneous execution of a task by a plurality of robots, the task flow including a plurality of predefined job tasks and connection tasks located between the job tasks; a confirmation unit that confirms whether a robot interferes with other objects in the connection tasks of the generated task flow; an update unit that, when it is confirmed that interference will occur, updates the simultaneous execution restriction, and the simultaneous execution restriction is related to the connection tasks of the generated task flow; and a re-execution unit that causes the flow generation unit to re-generate the task flow based on the updated simultaneous execution restriction.
[0081] One aspect of the present disclosure relates to a planning method executed by a planning system including at least one processor. The planning method includes the following steps: generating a task flow based on simultaneous execution constraints related to the simultaneous execution of tasks by multiple robots, the task flow including a plurality of predefined job tasks and connection tasks located between the job tasks; confirming whether a robot interferes with other objects in the connection tasks of the generated task flow; when it is confirmed that interference will occur, updating the simultaneous execution constraints, the simultaneous execution constraints being related to the connection tasks of the generated task flow; and regenerating the task flow based on the updated simultaneous execution constraints.
[0082] One aspect of the present disclosure relates to a planning program that causes a computer to execute the following steps: generating a task flow based on simultaneous execution constraints related to the simultaneous execution of tasks by multiple robots, the task flow including a plurality of predefined job tasks and connection tasks located between the job tasks; confirming whether a robot interferes with other objects in the connection tasks of the generated task flow; when it is confirmed that interference will occur, updating the simultaneous execution constraints, the simultaneous execution constraints being related to the connection tasks of the generated task flow; and regenerating the task flow based on the updated simultaneous execution constraints.
[0083] One aspect of the present disclosure relates to a robot system including: more than one robot; the above-mentioned planning system; and more than one robot controller that causes the more than one robot to act based on the generated action program.
[0084] In these aspects, instead of confirming all possible task flows, the presence or absence of interference in the task flow generated based on the simultaneous execution constraints is confirmed, thus shortening the time spent on confirming such interference. Therefore, the planning of robot control can be effectively executed.
[0085] In the planning system according to another aspect, it may further include: a path generation unit that generates a clearance path in the connection tasks of the generated task flow, a confirmation unit that confirms whether a robot interferes with other objects in the clearance path, and an update unit that updates the simultaneous execution constraints, the simultaneous execution constraints being related to the connection tasks of the generated task flow, when it is confirmed that interference will occur. Since the presence or absence of interference is checked in the clearance path representing the actual trajectory of the robot, the necessity of updating the simultaneous execution constraints can be accurately determined.
[0086] In the planning system according to another aspect, it may be that the multiple robots include a first robot and a second robot, and the path generation unit generates a clearance path in the connection tasks of the first robot so that the first robot does not interfere with the trajectory of the second robot. In this case, the clearance path of the robot to be processed can be appropriately set to avoid the paths of other robots that have already been set.
[0087] On the other hand, in the planning system involved, it may further include: a pattern generation unit that generates a plurality of task patterns, the plurality of task patterns including a plurality of operation tasks and connection tasks, and a flow generation unit that generates a task flow based on the simultaneous execution limit and the plurality of task patterns. Since a plurality of task patterns are automatically prepared and a task flow is generated based on these task patterns, a task flow can be effectively obtained.
[0088] On the other hand, in the planning system involved, it may be that the pattern generation unit has a limit setting unit that sets a simultaneous execution limit for at least one of the operation tasks and the connection tasks for each of the plurality of task patterns. Since a simultaneous execution limit is set for the operation tasks or the connection tasks, the processing of a plurality of robots can be appropriately confirmed.
[0089] On the other hand, in the planning system involved, it may be that the pattern generation unit has: a standby task insertion unit that inserts a standby task for making a robot standby into an operation task; and a limit setting unit that sets a simultaneous execution limit for at least one of the operation tasks, the connection tasks, and the standby tasks for each of the plurality of task patterns. Since a standby task is automatically inserted and a simultaneous execution limit can also be set for this standby task, the processing of a plurality of robots can be appropriately confirmed.
[0090] On the other hand, in the planning system involved, it may be that the standby task insertion unit inserts a standby task for each of a plurality of candidate postures of the robot in the operation task. In this case, an effective operation process that further considers the standby posture of the robot can be planned.
[0091] On the other hand, in the planning system involved, it may be that an update unit adjusts the standby time corresponding to the standby task, and the flow generation unit regenerates a task flow based on the adjustment result. By adjusting the standby time, the simultaneous execution limit can be appropriately updated.
[0092] On the other hand, in the planning system involved, it may be that the pattern generation unit has a connection task insertion unit that inserts a connection task between adjacent operation tasks. Since the connection task is automatically inserted, a task pattern can be effectively generated.
[0093] On the other hand, in the planning system involved, it may be that the pattern generation unit discards a task pattern including a posture that a robot cannot execute and generates a plurality of task patterns. Since unachievable task flows are excluded and a task flow is generated based on a plurality of task patterns that the relevant robot can execute, the actions of the robot can be effectively planned (for example, in a short time).
[0094] On the other hand, in the planning system involved, it is possible that the update unit updates the connection time in the connection task based on the empty cut path. By updating the connection time, the simultaneous execution limit can be appropriately updated.
[0095] On the other hand, in the planning system involved, it is possible that the flow generation unit generates a task flow with the shortest execution time. By this method, a task flow that can complete a series of operations earliest can be generated.
[0096] On the other hand, in the planning system involved, it is possible that the flow generation unit generates a task flow by solving the traveling salesman problem based on the simultaneous execution limit. By treating the process of generating the task flow as the traveling salesman problem, a task flow that can complete a series of operations at the lowest cost can be effectively generated.
[0097] On the other hand, in the planning system involved, it is possible that the flow generation unit solves the traveling salesman problem, where the standby postures of each of the multiple robots are represented by nodes, and the operation tasks and connection tasks are represented by branches. By setting the traveling salesman problem that represents the standby postures by nodes and the operation tasks and connection tasks equivalent to actions by branches, the operation process of the robot can be appropriately applied to the traveling salesman problem.
[0098] On the other hand, in the planning system involved, it is possible that the flow generation unit solves the traveling salesman problem to satisfy the restriction that two or more robots do not pass through the same nodes and the same branches. The alternative restriction must be considered in the traveling salesman problem. Therefore, a task flow that satisfies this alternative restriction and can complete a series of operations at the lowest cost can be effectively generated.
[0099] On the other hand, in the planning system involved, it is possible that it further includes: a program generation unit that generates an action program for causing one or more robots to execute the task flow when it is confirmed that there will be no interference in the generated task flow. Since it does not check all the task flows that can be adopted, but checks whether there is interference in a specific task flow, the time spent on confirming this interference is shortened. Therefore, an action program can be effectively generated.
[0100] On the other hand, in the planning system involved, it is possible that the program generation unit sets the standby time of the robot between the operation task and the connection task based on the generated task flow, and generates an action program including this standby time. Just setting the standby time of the robot based on the generated task flow, so the interlocking can be effectively planned.
[0101] Variation
[0102] As described above, the embodiments based on the present disclosure have been described in detail. However, the present disclosure is not limited to the above embodiments. Various variations can be made without departing from the gist of the present disclosure.
[0103] The functional structure of the planning system is not limited to the above examples. The planning method of the present disclosure can also be executed using a functional structure different from the above examples.
[0104] The hardware structure of the planning system is not limited to the manner of implementing each functional module by executing a program. For example, at least a part of the above functional module group can be constituted by a logic circuit dedicated to its function, or can be constituted by an ASIC (Application Specific Integrated Circuit) integrating the logic circuit.
[0105] The processing procedure of the method executed by at least one processor is not limited to the above examples. For example, a part of the above steps (processing) can be omitted, or each step can be executed in a different order. In addition, two or more of the above steps can be combined, or a part of the steps can be modified or deleted. Or, other steps can be executed in addition to the above steps.
[0106] When comparing the magnitude relationship between two numerical values in a computer system or a computer, either of the two criteria of "above" and "greater than" can be used, or either of the two criteria of "below" and "less than" can be used.
[0107] Symbol Explanation
[0108] 1 Robot system
[0109] 2 Robot
[0110] 3 Robot controller
[0111] 4 Programming assistance device
[0112] 5 Front end
[0113] 10 Main body
[0114] 20 Monitor
[0115] 30 Input device
[0116] 110 Acquisition unit
[0117] 120 Mode generation unit
[0118] 121 Task insertion unit
[0119] 122 Limit setting unit
[0120] 130 Flow determination unit
[0121] 131 Flow generation unit
[0122] 132 Path generation unit
[0123] 133 Confirmation Unit
[0124] 134 Update Unit
[0125] 140 Program Generation Unit
Claims
1. A planning system, comprising: A flow generation unit that generates a task flow based on simultaneous execution restrictions related to the simultaneous execution of tasks by multiple robots, the task flow including a plurality of predefined job tasks and connection tasks located between the job tasks, and the task flow refers to information indicating which robot executes which task in what order and at what timing; A confirmation unit that confirms whether the robot interferes with other objects in the connection tasks of the generated task flow; An update unit that updates the simultaneous execution restrictions when it is confirmed that such interference will occur, and the simultaneous execution restrictions are related to the connection tasks of the generated task flow; And A re-execution unit that causes the flow generation unit to regenerate the task flow based on the updated simultaneous execution restrictions, The planning system further includes: A mode generation unit that generates a plurality of task modes, the plurality of task modes including the plurality of job tasks and the connection tasks, The flow generation unit generates the task flow based on the simultaneous execution restrictions and the plurality of task modes, The mode generation unit discards task modes including postures that the robot cannot execute and generates the plurality of task modes, The planning system further includes: A program generation unit that generates an action program for causing one or more of the robots to execute the task flow when it is confirmed that no such interference will occur in the generated task flow.
2. The planning system according to claim 1, further including: A path generation unit that generates a clearance path in the connection tasks of the generated task flow, The confirmation unit confirms whether the robot interferes with the other objects in the clearance path, When it is confirmed that such interference will occur, the update unit updates the simultaneous execution restrictions, and the simultaneous execution restrictions are related to the connection tasks of the generated task flow.
3. The planning system according to claim 2, wherein The plurality of robots include a first robot and a second robot, The path generation unit generates the clearance path in the connection tasks of the first robot so that the first robot does not interfere with the trajectory of the second robot.
4. The planning system according to claim 1, wherein The mode generation unit has a restriction setting unit that sets the simultaneous execution restrictions for at least one of the job tasks and the connection tasks for each of the plurality of task modes.
5. The planning system according to claim 1, wherein The mode generation unit has: A standby task insertion unit that inserts a standby task for causing the robot to standby into the job tasks; And A restriction setting unit that sets the simultaneous execution restrictions for at least one of the job tasks, the connection tasks, and the standby tasks for each of the plurality of task modes.
6. The planning system according to claim 5, wherein The standby task insertion unit inserts the standby task for each of a plurality of candidate postures of the robot in the job tasks.
7. The planning system according to claim 5 or 6, wherein The updating unit adjusts the standby time corresponding to the standby task. The flow generation unit regenerates the task flow based on the result of the adjustment.
8. The planning system according to claim 1, wherein The mode generation unit has a connection task insertion unit that inserts the connection task between adjacent operation tasks.
9. The planning system according to claim 2 or 3, wherein The updating unit updates the connection time in the connection task based on the empty cut path.
10. The planning system according to any one of claims 1 to 3, wherein The flow generation unit generates the task flow with the shortest execution time.
11. The planning system according to any one of claims 1 to 3, wherein The flow generation unit generates the task flow by solving the traveling salesman problem based on the simultaneous execution restriction.
12. The planning system according to claim 11, wherein The flow generation unit solves the traveling salesman problem, and the traveling salesman problem represents the standby postures of each of the plurality of robots with nodes and represents the operation tasks and the connection tasks with branches.
13. The planning system according to claim 12, wherein The flow generation unit solves the traveling salesman problem to satisfy the restriction that two or more robots do not pass through the same node and the same branch.
14. The planning system according to claim 1, wherein The program generation unit sets the standby time of the robot between the operation task and the connection task based on the generated task flow and generates the action program including the standby time.
15. A robot system, comprising: One or more robots; The planning system according to claim 14; And One or more robot controllers that cause the one or more robots to act based on the generated action program.
16. A planning method executed by a planning system, the planning system including at least one processor, the planning method including the following steps: Generating a task flow based on a simultaneous execution restriction related to the simultaneous execution of tasks by a plurality of robots, the task flow including a plurality of predefined operation tasks and connection tasks located between the operation tasks, and the task flow refers to information indicating which robot executes which task in what order and at what timing; Confirming whether the robot interferes with other objects in the connection task of the generated task flow; When it is confirmed that the interference will occur, updating the simultaneous execution restriction related to the connection task of the generated task flow; And Regenerating the task flow based on the updated simultaneous execution restriction, The planning method further includes the following steps: Generating a plurality of task patterns, the plurality of task patterns including the plurality of operation tasks and the connection tasks; Generating the task flow based on the simultaneous execution restriction and the plurality of task patterns; Discarding task patterns including postures that the robot cannot execute and generating the plurality of task patterns; and When it is confirmed that the interference will not occur in the generated task flow, an action program is generated, and the action program is used to cause one or more of the robots to execute the task flow.
17. A computer-readable storage medium stores a planning program, and the planning program causes a computer to perform the following steps: Generate a task flow based on the simultaneous execution restrictions related to the simultaneous execution of tasks by multiple robots, where the task flow includes a plurality of predefined job tasks and connection tasks located between the job tasks, and the task flow refers to information indicating which robot executes what task in what order and at what timing; Confirm whether the robot interferes with other objects in the connection tasks of the generated task flow; When it is confirmed that the interference will occur, update the simultaneous execution restrictions, which are related to the connection tasks of the generated task flow; Regenerate the task flow based on the updated simultaneous execution restrictions; Generate a plurality of task patterns, where the plurality of task patterns include the plurality of job tasks and the connection tasks; Generate the task flow based on the simultaneous execution restrictions and the plurality of task patterns; Discard the task patterns that include postures that the robot cannot execute, and generate the plurality of task patterns; And When it is confirmed that the interference will not occur in the generated task flow, an action program is generated, and the action program is used to cause one or more of the robots to execute the task flow.
Citation Information
Patent Citations
Robot path-generating device and robot system
WO2018143003A1
Programming assistance device, robot system, and programming assistance method
EP3718702A1
Robot coordination in a shared workspace
US20190391597A1