Robot system, task generation device and control method

JP2024102220A5Active Publication Date: 2025-02-06YASKAWA DENKI KK
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024074693
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-02
Publication Date
2025-02-06
Estimated Expiration
2042-02-10

AI Technical Summary

Technical Problem

Existing robot systems face challenges in simplifying motion programming, particularly in handling undetermined sections of motion paths and adapting to changes in the surrounding environment.

Method used

A robot system that includes a calling unit to sequentially call commands, a path planning unit to generate additional paths for undetermined sections, and a control unit to operate the robot based on these paths, utilizing surrounding environment information to adapt operations.

Benefits of technology

The system simplifies motion programming by generating additional paths dynamically, allowing the robot to flexibly respond to environmental changes and ensure smooth operation without requiring extensive reprogramming.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a robot system that is effective in simplifying motion programming.SOLUTION: A robot system 1 comprises: an invoking part 111 that sequentially invokes a plurality of commands representing motion paths of a robot 3 including an undetermined section; a path plan part 112 that generates an additional path to the undetermined section; and a control part 114 that makes the robot 3 operate on the basis of the commands invoked by the invoking part 111 and the additional path. The path plan part 112 generates the additional path on the basis of information about a circumference environment of the robot 3, when the control part 114 makes the robot 3 operate on the basis of one command.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a robot system, a task generation device, and a control method. [Background technology]

[0002] Patent Document 1 discloses a method for planning a robot's motion path that does not interfere with obstacles in the work environment, when the start and goal positions of the robot are given, by utilizing a geometric model means on a computer that describes the geometric shapes of the robot and the work environment and their arrangement, and an interference inspection means on a computer that inspects for interference between the models. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2000-20117 A Summary of the Invention [Problem to be solved by the invention]

[0004] The present disclosure provides a robot system that is effective in simplifying motion programming. [Means for solving the problem]

[0005] A robot system according to one aspect of the present disclosure includes a calling unit that sequentially calls a plurality of commands that represent a robot's operation path including an undetermined section, a path planning unit that generates an additional path for the undetermined section, and a control unit that operates the robot based on the commands called by the calling unit and the additional path, and the path planning unit generates the additional path based on information about the robot's surrounding environment when the control unit is operating the robot based on one command.

[0006] A robot system according to another aspect of the present disclosure includes a calling unit that sequentially calls a plurality of commands including a plurality of move commands including information of waypoints of a robot's operation path that includes an undetermined section and an auto command including information of a waypoint of the operation path that is a destination point of the undetermined section, a path planning unit that generates an additional path to a destination point in the undetermined section based on the auto commands and information about the robot's surrounding environment, and a control unit that operates the robot based on the commands called by the calling unit and the additional path.

[0007] A task generation device according to yet another aspect of the present disclosure includes a command generation unit that generates an auto command that determines a starting point of a series of movements corresponding to two or more move commands based on task information specifying two or more move commands, each of which includes information on waypoints of a robot's movement path including an undetermined section, and a task generation unit that generates a task based on the generated auto command and the task information.When a task is selected, an additional path to the starting point determined by the auto command of the task is generated based on information about the robot's surrounding environment, and the robot operates based on the generated additional path and the two or more move commands of the task.

[0008] A control method according to yet another aspect of the present disclosure includes sequentially calling a plurality of commands representing a robot's movement path including an undetermined section, generating an additional path for the undetermined section, and operating the robot based on the called commands and the additional path, wherein while the robot is operating based on one command, the additional path is generated based on surrounding environment information. Effect of the Invention

[0009] According to the present disclosure, it is possible to provide a robot system that is effective in simplifying operation programming. [Brief description of the drawings]

[0010] [Figure 1] FIG. 1 is a schematic diagram illustrating a configuration of a robot system. [Diagram 2]FIG. 2 is a schematic diagram illustrating a configuration of a robot. [Diagram 3] FIG. 2 is a block diagram illustrating an example of a functional configuration of a controller. [Figure 4] FIG. 13 is a diagram illustrating a plurality of commands. [Diagram 5] FIG. 2 is a block diagram illustrating a configuration of a path plan unit. [Figure 6] 11 is a timing chart showing the relationship between a robot operation period and an additional path generation period. [Figure 7] 4 is a schematic diagram illustrating an example of storage contents of a task storage unit; FIG. [Figure 8] FIG. 13 is a block diagram showing a modified example of the controller. [Figure 9] FIG. 2 is a block diagram illustrating a configuration of a higher-level controller. [Figure 10] FIG. 2 is a block diagram illustrating an example of a hardware configuration of a controller, a higher-level controller, and a simulation device. [Figure 11] 13 is a flow chart illustrating an example of an autocommand placement procedure. [Figure 12] 1 is a flowchart illustrating a task generation procedure. [Figure 13] 1 is a flowchart illustrating a procedure for generating a program. [Figure 14] 1 is a flowchart illustrating a system control procedure. [Figure 15] 1 is a flowchart illustrating a command calling procedure. [Figure 16] 13 is a flowchart illustrating a path generation procedure. [Figure 17] 11 is a flowchart illustrating an example of an environmental change check procedure. [Figure 18] 11 is a flowchart illustrating a control procedure of a robot based on a command. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] Hereinafter, the embodiments will be described in detail with reference to the drawings. In the description, the same elements or elements having the same functions are denoted by the same reference numerals, and duplicated description will be omitted.

[0012] [Robot System] The robot system 1 shown in Fig. 1 is a system that performs production of workpieces, etc., using multiple machines including one or more robots. The tasks that the robot system 1 causes the multiple machines to execute are not limited to production of workpieces, etc. As an example, the robot system 1 includes a conveyor 2, multiple robots 3, and a control system CS1.

[0013] The conveyor 2 transports the workpieces by the power of, for example, an electric motor. Specific examples of the conveyor 2 include a belt conveyor and a roller conveyor. Each of the multiple robots 3 performs an operation on the workpieces transported by the conveyor 2. Specific examples of the operation on the workpieces include assembling a workpiece (for example, a subpart) to a workpiece (for example, a base part) transported by the conveyor 2, fastening (for example, bolting) and joining (for example, welding) parts of the workpieces transported by the conveyor 2, and the like.

[0014] FIG. 2 is a schematic diagram illustrating the configuration of the robot 3. The robot 3 shown in FIG. 2 is a six-axis vertical articulated robot, and includes a base 11, a swivel 12, a first arm 13, a second arm 14, a third arm 17, a tip 18, and actuators 41, 42, 43, 44, 45, and 46. The base 11 is installed around the conveyor 2. The swivel 12 is provided on the base 11 so as to swivel around a vertical axis 21. The first arm 13 is connected to the swivel 12 so as to swing around an axis 22 that intersects (for example, perpendicular to) the axis 21, and extends in a direction away from the axis 22. The intersection also includes a case where there is a twisted relationship, such as a so-called three-dimensional intersection. The same applies hereinafter.

[0015] The second arm 14 is connected to the tip of the first arm 13 so as to swing about an axis 23 that is substantially parallel to the axis 22, and extends in a direction away from the axis 23. The second arm 14 includes an arm base 15 and an arm end 16. The arm base 15 is connected to the tip of the first arm 13. The arm end 16 is connected to the tip of the arm base 15 so as to rotate about an axis 24 that intersects (e.g., is perpendicular to) the axis 23, and extends in a direction away from the arm base 15 along the axis 24.

[0016] Third arm 17 is connected to the tip of arm end 16 so as to swing about axis 25 intersecting (e.g., perpendicular to) axis 24. Tip 18 is connected to the tip of third arm 17 so as to rotate about axis 26 intersecting (e.g., perpendicular to) axis 25.

[0017] Thus, the robot 3 has a joint 31 connecting the base 11 and the swivel 12, a joint 32 connecting the swivel 12 and the first arm 13, a joint 33 connecting the first arm 13 and the second arm 14, a joint 34 connecting the arm base 15 and the arm end 16 in the second arm 14, a joint 35 connecting the arm end 16 and the third arm 17, and a joint 36 connecting the third arm 17 and the tip 18.

[0018] The actuators 41, 42, 43, 44, 45, and 46 include, for example, electric motors and reducers, and drive the joints 31, 32, 33, 34, 35, and 36, respectively. For example, the actuator 41 rotates the rotating part 12 around the axis 21, the actuator 42 swings the first arm 13 around the axis 22, the actuator 43 swings the second arm 14 around the axis 23, the actuator 44 rotates the arm end 16 around the axis 24, the actuator 45 swings the third arm 17 around the axis 25, and the actuator 46 rotates the tip part 18 around the axis 26.

[0019] The specific configuration of the robot 3 can be appropriately changed. For example, the robot 3 may be a seven-axis redundant robot in which one more joint is added to the six-axis vertical articulated robot, or may be a so-called SCARA type articulated robot.

[0020] Returning to Fig. 1, the control system CS1 controls multiple machines including multiple robots 3. The control system CS1 is configured to execute the following: sequentially calling multiple commands representing a motion path of the robot 3 including an undetermined section, generating an additional path for the undetermined section, and operating the robot 3 based on the called commands and the additional path. Furthermore, the control system CS1 is configured to generate the additional path based on surrounding environment information while operating the robot 3 based on one command.

[0021] The motion path represents, for example, the movement route of a part of the robot 3 (for example, the tip portion 18). The motion path may represent the transition of the position and posture of the tip portion 18. The motion path includes a plurality of sections. Each of the plurality of sections is between two waypoints of the motion path. The plurality of sections includes a plurality of predefined sections and one or more undetermined sections. Each of the plurality of predefined sections is a section in which a movement route between two waypoints (for example, a movement route of the tip portion 18) is determined. Each of the one or more undetermined sections is a section in which a path between two waypoints is not determined.

[0022] The control system CS1 generates an additional path for the undetermined section based on the surrounding environment information. The additional path represents a path between two waypoints in the undetermined section.

[0023] Of the motion path, if only the sections that are essential for the motion objective, such as work production, are taught in advance as predetermined sections, the remaining undetermined sections are supplemented by the control system CS1, making it easier to teach the robot 3 motion.

[0024] Furthermore, according to the control system CS1, an additional path is generated based on the surrounding environment information after the robot 3 starts the operation based on a plurality of commands, and the operation by the robot 3 is continued based on the generated additional path. Therefore, it is possible to cause the robot 3 to execute an operation that flexibly corresponds to the change in the surrounding environment.

[0025] The configuration of the control system CS1 will be exemplified in more detail below. The control system CS1 has a plurality of controllers 100 and a host controller 200. The plurality of controllers 100 each control a plurality of robots 3 based on commands from the host controller 200. The host controller 200 transmits work commands to each of the plurality of controllers 100 so that the plurality of robots 3 cooperate to carry out a series of tasks. Each of the plurality of controllers 100 controls a corresponding robot 3 based on the work command.

[0026] In controlling the robot 3 based on the work command, the controller 100 executes the following: sequentially calling a plurality of commands, generating an additional path for each of one or more undetermined sections, and operating the robot 3 based on the called commands and the additional path. While operating the robot 3 based on one command, the controller 100 generates the additional path based on surrounding environment information. The configurations of the controller 100, the upper controller 200, and the simulation device 300 will be illustrated in more detail below.

[0027] 〔controller〕 Fig. 3 is a block diagram illustrating a functional configuration of the controller 100. As shown in Fig. 3, the controller 100 has a calling unit 111, a path plan unit 112, a path storage unit 113, and a control unit 114 as functional components (hereinafter referred to as "functional blocks").

[0028] The calling unit 111 sequentially calls a plurality of commands that represent a motion path of the robot 3. The plurality of commands may be stored in advance in the controller 100. For example, the controller 100 may store in advance an operation program in which the plurality of commands are arranged in the order of execution. In this case, the calling unit 111 sequentially fetches the plurality of commands from the operation program stored in the controller 100. Fetching means reading out data.

[0029] A plurality of commands may be transmitted from the cloud to the controller 100. In this case, the calling unit 111 sequentially fetches the plurality of commands from a receiving buffer that temporarily stores data received from the cloud computer.

[0030] The path planner 112 generates an additional path for the undetermined section. When the motion path includes multiple undetermined sections, the path planner 112 generates an additional path for each of the multiple undetermined sections.

[0031] As an example, the plurality of commands includes a move command and an autocommand. The plurality of commands may include a plurality of move commands and one or more autocommands.

[0032] The move command includes information on via points of the motion path. The via points determine at least the position of the tip portion 18. The via points may determine the position and orientation of the tip portion 18. The via points may determine the angles of the joints 31, 32, 33, 34, 35, and 36 instead of determining the position and orientation of the tip portion 18 itself. The position and orientation of the tip portion 18 are also determined by determining the angles of the joints 31, 32, 33, 34, 35, and 36. The via points of the move command may be teaching points taught by an operator through offline teaching, online teaching, or the like.

[0033] The move command may further include path specifying information. The path specifying information is information for specifying the path of the section up to the waypoint of the move command and making the section the above-mentioned default section. Hereinafter, the section up to the waypoint of the move command is referred to as the "move section", and the path of the move section is referred to as the "move section path". For example, the path information represents a path specifying condition that uniquely defines the move section path. Specific examples of path specifying conditions include interpolating the move section with a straight line (linear interpolation), and interpolating the move section with an S-shaped curve (S-shaped interpolation).

[0034] Each of the one or more auto commands includes information on a waypoint of the motion path that is the destination of the undetermined section. Each of the one or more auto commands may further include condition information that indicates a generation condition when generating an additional path. Specific examples of the generation condition include a path specification condition for the additional command described later, a condition for the movement speed in the additional path, a condition for the acceleration in the additional path, a condition for the deceleration in the additional path, a condition for the attitude of the tip part 18 in the additional path, and a condition on whether or not to allow reuse of an additional path that has already been generated when there is no change in the surrounding environment information. The waypoint of the auto command may also be a teaching point taught by an operator during offline teaching, online teaching, or the like, like the waypoint of the move command.

[0035] Fig. 4 is a diagram illustrating a plurality of commands. In Fig. 4, commands C1, C2, C3, C4, C5, C6, C7, C8, and C9 are shown. Commands C1, C2, C3, C4, C6, C7, and C8 are move commands, and commands C5 and C9 are auto commands. In Fig. 4, the via points of each command are entered as arguments in parentheses.

[0036] In commands C1, C2, C3, C4, C6, C7, and C8, the alphabet 1 added after "Move" corresponds to an example of path information. For example, "L" indicates that a straight line is used to supplement the relationship between the position and orientation of tip 18 at the start point and the position and orientation of tip 18 at the end point. "S" indicates that an S-shaped curve is used to supplement the relationship between the position and orientation of tip 18 at the start point and the position and orientation of tip 18 at the end point. "J" indicates that a straight line is used to supplement the relationship between the angles of joints 31, 32, 33, 34, 35, and 36 at the start point and the angles of joints 31, 32, 33, 34, 35, and 36 at the end point.

[0037] In commands C5 and C9, "Auto" added after "Move" indicates that the command is an auto command.

[0038] As shown in Fig. 4, a plurality of commands including a move command and an auto command expresses an operation path including a predefined section (move section) corresponding to the move command and an undetermined section corresponding to the auto command. Returning to Fig. 3, the path planning unit 112 generates an additional path for the undetermined section corresponding to the auto command. For example, the path planning unit 112 generates an additional path from a way point (starting point) immediately before the way point (arrival point) of the auto command to the arrival point. Note that in cases where the auto command is at the beginning of a plurality of commands, the path planning unit 112 may generate an additional path with the current position of the tip 18 of the robot 3 as the starting point.

[0039] The control unit 114 operates the robot 3 based on the command and additional path called by the calling unit 111. For example, the control unit 114 operates the robot 3 to follow a series of motion paths including a plurality of move section paths respectively corresponding to a plurality of move commands, and one or more additional paths respectively corresponding to one or more auto commands.

[0040] The control unit 114 does not have to operate the robot 3 so as to completely follow each of the multiple move section paths and the one or more additional paths, but may operate the robot 3 so as to at least partially follow each of the multiple move section paths and the one or more additional paths. For example, the control unit 114 may operate the robot 3 so as to at least partially follow each of the multiple move section paths and the one or more additional paths, but not to pass through one or more waypoints of the movement path.

[0041] The path planning unit 112 generates an additional path based on the surrounding environment information of the robot 3 when the control unit 114 is operating the robot 3 based on one command. For example, when the control unit 114 is operating the robot 3 based on a move command, the path planning unit 112 generates an additional path to a destination point in an undetermined section corresponding to an auto command based on an auto command subsequent to the move command and the surrounding environment information. For example, the path planning unit 112 generates an additional path when the control unit 114 is operating the robot 3 along a move section path corresponding to the move command. The path planning unit 112 may generate an additional path when the control unit 114 is operating the robot 3 along a move section path corresponding to a move command two or more commands before the auto command.

[0042] The path planner 112 may generate an additional path for an undetermined section corresponding to a subsequent auto command based on the subsequent auto command and surrounding environment information when the control unit 114 is operating the robot 3 based on a preceding auto command. The path planner 112 may generate an additional path for an undetermined section corresponding to a subsequent auto command based on the subsequent auto command and surrounding environment information when the control unit 114 is operating the robot 3 based on an auto command that precedes the subsequent auto command by two or more commands.

[0043] The path plan unit 112 may generate two or more new move commands that define an additional path based on the surrounding environment information. Hereinafter, the two or more new move commands that define an additional path are referred to as "two or more additional commands." In this case, the additional path is a path in which two or more move section paths corresponding to the two or more additional commands are connected together.

[0044] 5, for example, the path plan unit 112 has a model database 151, an interference check unit 152, and a path generation unit 153. The model database 151 stores model information of the conveyor 2 and the multiple robots 3. The model database 151 may further store model information of objects in the vicinity of the conveyor 2 and the multiple robots 3. The model information includes numerical information that specifies the structure and size.

[0045] The interference check unit 152 simulates the operation of the conveyor 2 and the multiple robots 3 to check whether the robots 3 will interfere with surrounding objects in the surrounding environment and the robots themselves. For example, the interference check unit 152 simulates the operation of the robots 3 based on an additional path on the basis of the model information stored in the model database 151 and the surrounding environment information stored in the environment information database 212 to check whether the robots 3 will interfere with surrounding objects. Interference means that the robots 3 overlap with surrounding objects in the simulation space. If interference occurs in the simulation space, a collision will occur between the robots 3 and the surrounding objects in the real space.

[0046] The interference check unit 152 may calculate a series of control commands to be generated by the control unit 114 based on two or more commands including two or more additional commands, and simulate the operation of the robot 3 based on the calculated series of control commands.

[0047] The path generating unit 153 generates an additional path. For example, the path generating unit 153 first generates a provisional additional path by interpolating the starting point and the destination point with a straight line, and causes the interference check unit 152 to simulate the operation of the robot 3 based on the provisionally generated additional path. If it is determined that the robot 3 interferes with a peripheral object as a result of the simulation by the interference check unit 152, the path generating unit 153 randomly generates a via point that does not interfere with the peripheral object and adds it between the starting point and the destination point. Thereafter, the generation and addition of via points are repeated until the additional path connecting the starting point, the one or more generated via points, and the destination point does not cause interference between the robot 3 and the peripheral object. Thereafter, the path generating unit 153 generates two or more additional commands with the one or more added via points and the destination point as via points, respectively.

[0048] In this manner, the interference check unit 152 confirms that the robot 3 will not interfere with surrounding objects on the additional path generated by the path planning unit 112. Therefore, the control unit 114 operates the robot 3 based on the additional path generated by the path planning unit 112 when the robot 3 will not interfere with surrounding objects.

[0049] Returning to FIG. 3, the path plan unit 112 stores the two or more generated additional paths in the path storage unit 113. For example, the path plan unit 112 stores the two or more generated additional commands in the path storage unit 113. The path plan unit 112 may cause a simulation device capable of communicating with the controller 100 to generate an additional path. For example, the path plan unit 112 may specify a starting point and a destination point and request the simulation device to generate an additional path. The simulation device that receives the request to generate an additional path generates an additional path based on surrounding environment information. In this way, causing another device to generate an additional path based on surrounding environment information is also included in generating an additional path based on surrounding environment information.

[0050] When the path storage unit 113 stores two or more additional commands, the calling unit 111 sequentially calls the two or more additional commands. The control unit 114 operates the robot 3 based on the two or more additional commands called by the calling unit 111. For example, the control unit 114 operates the robot 3 so as to at least partially follow each of two or more move section paths corresponding to the two or more additional commands, respectively.

[0051] The path plan unit 112 may generate two or more additional commands based on the auto command and the surrounding environment information after the calling unit 111 calls the auto command. For example, the path plan unit 112 generates an additional path from a via point (start point) immediately before the via point (destination point) of the auto command called by the calling unit 111 to the destination point.

[0052] The calling unit 111 may store the two or more called commands in the command storage unit 115. The calling unit 111 may store two or more commands including two or more additional commands in the command storage unit 115. For example, when the calling unit 111 calls an auto command, the calling unit 111 may call from the path storage unit 113 the two or more additional commands that the path plan unit 112 has stored in the path storage unit 113 based on the auto command, and store them in the command storage unit 115.

[0053] The control unit 114 may operate the robot 3 based on two or more commands stored in the command storage unit 115. For example, the control unit 114 may generate a series of control commands for the robot 3 based on two or more commands stored in the command storage unit 115, and operate the robot 3 based on the series of control commands. For example, the control unit 114 may generate a series of speed patterns including acceleration and deceleration based on two or more commands stored in the command storage unit 115, and operate the robot 3 based on the series of speed patterns. For example, the control unit 114 repeatedly calculates target angles of the joints 31, 32, 33, 34, 35, and 36 by inverse kinematics calculation based on the series of speed patterns for the position and posture of the tip portion 18, and causes the angles of the joints 31, 32, 33, 34, 35, and 36 to follow the target angles in a predetermined control cycle.

[0054] The path plan unit 112 may start generating an additional path at a timing when the generation of the additional path is completed before the operation corresponding to the move command immediately before the auto command is completed. For example, the path plan unit 112 may generate an additional path at a timing when two or more additional commands can be stored in the path storage unit 113 before the operation corresponding to the move command immediately before the auto command is completed. Hereinafter, the operation corresponding to the move command immediately before the auto command is referred to as a "preceding operation."

[0055] For example, the path plan unit 112 may start generating an additional path at a timing a predetermined generation margin time before the predicted completion timing of the preceding operation. The generation margin time is set to be equal to or greater than the time required to generate the additional path. The generation margin time may be set to be equal to or greater than the total time of the time required to generate the additional path and the time required to generate the control command.

[0056] Specific examples of the predicted completion timing of a preceding operation include the timing of transition from a preceding operation to an operation based on an auto command, and the timing of deceleration start before transition from a preceding operation to an operation based on an auto command.

[0057] The calling unit 111 may change the number of commands stored in the command storage unit 115 so that the predicted time of the operation corresponding to two or more commands stored in the command storage unit 115 is longer than at least the time required for the path plan unit 112 to generate an additional path. For example, when the predicted time is shorter than the time required for the generation of an additional path, the calling unit 111 may shorten the command calling cycle and increase the number of commands stored in the command storage unit 115.

[0058] Fig. 6 is a timing chart showing the relationship between the operation period of the robot and the generation period of an additional path, with the horizontal axis showing the passage of time. As shown in Fig. 6, the path plan unit 112 starts generating an additional path at a start timing t2 that is a generation margin time T11 before the predicted completion timing t1 of the preceding operation. The generation margin time T11 is equal to or longer than the generation time T13 of the additional path. Therefore, if the generation of the additional path is started at the generation margin time T11, it is possible to complete the generation of the additional path by the predicted completion timing t1 at which the preceding operation is completed.

[0059] 6, the predicted time T12 of the operation corresponding to two or more commands stored in the command storage unit 115 is longer than the generation margin time T11. Therefore, there is a margin of time until the preceding operation is completed after the auto command is fetched, and the generation of the additional path can be started at the start timing t2, which is the generation margin time T11 before the completion prediction timing t1.

[0060] If the predicted time T12 is shorter than the generation margin time T11, the start timing t2, which is the generation margin time T11 before the predicted completion timing t1, will already be in the past when the autocommand is fetched, and it will be impossible to ensure sufficient time to generate the additional path before the predicted completion timing t1. To avoid this situation, the calling unit 111 changes the number of commands stored in the command storage unit 115 so that the predicted time T12 is longer than the generation margin time T11.

[0061] 3, when the auto command includes the above-mentioned condition information, the path plan unit 112 may generate an additional path based on the condition information. For example, the path plan unit 112 may execute generation of an additional path based on surrounding environment information so that the additional path satisfies the generation condition represented by the condition information.

[0062] The multiple commands may include a shift command that shifts a via point, in addition to a move command and an auto command. When the calling unit 111 calls an auto command after a shift command, the path plan unit 112 generates an additional path to a shift destination point obtained by shifting the via point (destination point) of the auto command based on the shift command. The multiple commands may further include a shift off command that turns off the shifting of the via point by the shift command. When the calling unit 111 calls an auto command after a shift command and before a shift off command, the path plan unit may generate an additional path to a shift destination point obtained by shifting the destination point of the auto command based on the shift command.

[0063] The controller 100 may further include a task storage unit 121 and a task selection unit 123. The task storage unit 121 stores a plurality of tasks, each of which includes two or more move commands. The task selection unit 123 selects one task from the plurality of tasks stored in the task storage unit 121.

[0064] When the controller 100 includes a task storage unit 121 and a task selection unit 123, the calling unit 111 may sequentially call two or more commands from one task selected by the task selection unit 123. The calling unit 111 may call an auto command before calling a move command included in one task selected by the task selection unit 123. For example, the calling unit 111 may call an auto command before calling the first move command of one task selected by the task selection unit 123. The task selection unit 123 may select the next task at the timing when two or more commands included in the previously selected task are called by the calling unit 111.

[0065] The task storage unit 121 may store a plurality of tasks in advance, or may acquire a plurality of tasks from a higher-level device (e.g., a cloud computer) as necessary and store the acquired plurality of tasks. The task selection unit 123 may select one task in a predetermined order from the plurality of tasks stored in the task storage unit 121, or may autonomously select a task suitable for the surrounding environment based on the surrounding environment information of the robot 3.

[0066] When the task selection unit 123 selects one task from a plurality of tasks in a predetermined order, the controller 100 may further include a flow information acquisition unit 127 and a flow storage unit 122. The flow information acquisition unit 127 acquires the execution order of the plurality of tasks based on a user input to a user interface or the like, and stores the acquired order in the flow storage unit 122. The task selection unit 123 selects one task from the execution order and the plurality of tasks stored in the flow storage unit 122.

[0067] At least one of the multiple tasks may include an auto command before two or more move commands. For example, each of the multiple tasks may include an auto command before two or more move commands. FIG. 7 is a schematic diagram illustrating the contents stored in task selection unit 123. In FIG. 7, task selection unit 123 stores multiple tasks 141. Each of the multiple tasks 141 includes two or more move commands and an auto command, and the auto command is placed before (for example, at the beginning of) the two or more move commands. In this way, when each of the multiple tasks includes an auto command, calling unit 111 calls the auto command from one task selected by task selection unit 123.

[0068] Returning to FIG. 3, the controller 100 may further include an autocommand placement unit 124. When the first waypoint in one task is determined by a move command, the autocommand placement unit 124 replaces the move command that determines the first waypoint with an autocommand. The autocommand placement unit 124 may insert an autocommand before the move command that determines the first waypoint. For example, the autocommand placement unit 124 may insert an autocommand that determines the first waypoint before the move command that determines the first waypoint. The autocommand placement unit 124 can convert an existing task that does not include an autocommand into a task that includes an autocommand and utilize it.

[0069] As shown in Fig. 8, the controller 100 may further include a command generating unit 131 and a task generating unit 132. Based on task information specifying two or more move commands, the command generating unit 131 generates an auto command to be executed before the two or more move commands. For example, the command generating unit 131 acquires task information based on a user input to a user interface. For example, based on the two or more move commands, the command generating unit 131 identifies a destination point (a start point of a task) in a transition operation to an operation corresponding to the two or more move commands, and generates an auto command including information on the identified destination point.

[0070] The task generation unit 132 generates a task based on the generated auto command and the task information. For example, the task generation unit 132 generates a task by inserting the auto command generated by the command generation unit 131 before two or more move commands specified by the task information. The command generation unit 131 and the task generation unit 132 can simplify the task of generating a task including an auto command. It is also possible to prevent malfunctions between tasks due to missing auto commands.

[0071] The calling unit 111 may be configured to, when the first via point in a task is determined by a move command, convert the move command that determines the first via point into an auto command that sets the first via point as the destination point. In this case, an additional path can be added before the first task while leaving existing tasks that do not include an auto command without rewriting them.

[0072] Returning to Fig. 3, the controller 100 may further include an environmental change check unit 125. The environmental change check unit 125 checks whether there is any change in the environmental information before and after the path plan unit 112 generates an additional path based on the environmental information. For example, the environmental change check unit 125 checks whether there is any change in the environmental information based on the environmental information stored in an environmental information database 212 (described later) of the upper controller 200.

[0073] As an example, the environmental change check unit 125 indicates the presence or absence of a change in the surrounding environment information by an environmental flag. For example, when the path plan unit 112 generates an additional path, the environmental change check unit 125 sets the environmental flag to "off" and acquires the surrounding environment information from the environmental information database 212. Hereinafter, the surrounding environment information acquired at this timing is referred to as "reference information." Thereafter, when the surrounding environment information in the environmental information database 212 is updated, the environmental change check unit 125 compares the updated surrounding environment information with the reference information, and if it recognizes a difference between the updated surrounding environment information and the reference information, it changes the environmental flag from "off" to "on."

[0074] The surrounding environment information may also include items that do not affect the operation of the robot 3 along the additional path. The environmental change check unit 125 may check whether or not there is a change in the surrounding environment information based only on items of the surrounding environment information that are designated in advance as items that may affect the operation of the robot 3 along the additional path.

[0075] The control unit 114 may operate the robot 3 based on the additional path when there is no change in the surrounding environment information before and after the path plan unit 112 generates the additional path. For example, the control unit 114 may check the environment flag before operating the robot 3 based on the additional path, and operate the robot 3 based on the additional path when the environment flag is "off".

[0076] The control unit 114 may stop the operation of the robot 3 based on the additional path when there is a change in the surrounding environment information before and after the path plan unit 112 generates the additional path. For example, the control unit 114 may check the environment flag before operating the robot 3 based on the additional command, and clear (erase) the contents of the command storage unit 115 when the environment flag is "on". This prevents a speed pattern following the already generated speed pattern from being generated, so that the operation of the robot 3 may be temporarily halted at the point in time when the operation based on the already generated speed pattern is completed.

[0077] When there is a change in the surrounding environment information before and after the path planning unit 112 generates the additional path, the path planning unit 112 may regenerate the additional path based on the changed surrounding environment information. For example, when the control unit 114 recognizes that the environment flag is "on", the path planning unit 112 may regenerate the additional path based on the auto command corresponding to the additional command and the changed surrounding environment information. For example, the path planning unit 112 stores the regenerated two or more additional commands in the path storage unit 113. Thereafter, the calling unit 111 sequentially reads out the regenerated two or more additional commands and stores them in the command storage unit 115. When the regenerated two or more additional commands are stored in the cleared command storage unit 115, the operation of the robot 3 is resumed.

[0078] The additional path may be generated after the robot 3 starts performing operations based on at least a plurality of commands. The path plan unit 112 may generate the additional path immediately at the timing when the waypoint immediately before the waypoint of the auto command is determined.

[0079] If an additional path is generated immediately at the timing when the waypoint immediately before the waypoint of the auto command is confirmed, the waiting time from the generation of the additional path to the start of the operation of the robot 3 based on the additional path may be long. If the additional path is regenerated within the waiting time, the operation of the robot 3 can be continued by the regenerated additional path without stopping the operation of the robot 3. If there is sufficient waiting time, the environmental change check unit 125 may check whether there is a change in the surrounding environment information every time an additional path is regenerated, and the path plan unit 112 may regenerate the additional path every time the surrounding environment information changes.

[0080] The controller 100 may further include a status transmission unit 126. The status transmission unit 126 transmits status information indicating the status of the robot 3 to the upper controller 200 based on the control result of the robot 3 by the control unit 114. The status information includes, for example, the current angles of the joints 31, 32, 33, 34, 35, and 36.

[0081] [Host controller] Fig. 9 is a block diagram illustrating an example of the configuration of the upper controller 200. As shown in Fig. 9, the upper controller 200 has, as functional blocks, an information collecting unit 211, an environmental information database 212, a system control unit 213, and a program storage unit 214. The information collecting unit 211 collects surrounding environmental information and stores it in the environmental information database 212.

[0082] The information collecting unit 211 updates the surrounding environment information at least before and after the path planning unit 112 generates an additional path. For example, the information collecting unit 211 repeatedly collects the surrounding environment information in a predetermined update cycle and accumulates the collected results in chronological order in the environment information database 212. For example, the information collecting unit 211 may collect the surrounding environment information based on status information received from the status transmitting unit 126 of the controller 100, and may further collect the surrounding environment information based on an environment sensor 4 such as a camera (see FIG. 1).

[0083] The program storage unit 214 stores a system program that is predetermined to cause the multiple robots 3 to cooperate with each other to perform a series of tasks. For example, the system program includes a series of work commands for each of the multiple robots 3. The system program may include output conditions for at least any of the series of work commands.

[0084] The system control unit 213 outputs work commands to each of the multiple robots 3 so that the multiple robots 3 cooperate to perform a series of tasks. For example, the system control unit 213 sequentially outputs a series of work commands to each of the multiple robots 3 based on a system program. If an output condition is defined for any of the series of work commands, the system control unit 213 outputs a work command corresponding to the output condition when the surrounding environment information in the environment information database 212 satisfies the output condition.

[0085] Specific examples of the work command include a command to execute one of the above-mentioned tasks, a command to execute a plurality of tasks in the execution order stored in the flow storage unit 122, and the like.

[0086] FIG. 10 is a block diagram illustrating the hardware configuration of the controller 100 and the upper controller 200. The controller 100 has a circuit 190. The circuit 190 has one or more processors 191, a memory 192, a storage 193, a communication port 194, and a driver circuit 195. The storage 193 is a non-volatile storage medium, and stores a program for causing the controller 100 to execute a control method including sequentially calling a plurality of commands, generating an additional path, and operating the robot 3 based on the called command and the additional path, and generating an additional path based on surrounding environment information while operating the robot 3 based on one command. For example, the storage 193 stores a program for causing the controller 100 to configure each of the above-mentioned functional blocks. The storage 193 may be a built-in storage medium such as a flash memory or a hard disk, or may be a portable storage medium such as a USB memory or an optical disk.

[0087] The memory 192 temporarily stores a program loaded from the storage 193. A specific example of the memory 192 is a random access memory. The one or more processors 191 configure each of the above-mentioned functional blocks by executing the program loaded in the memory 192. The one or more processors 191 store the calculation results in the memory 192 as appropriate.

[0088] The communication port 194 is a communication port for synchronous communication of control, and communicates with the upper controller 200 based on a request from one or more processors 191. The driver circuit 195 supplies driving power to the joints 31, 32, 33, 34, 35, and 36 based on a request from one or more processors 191. The user interface 196 communicates with the user based on a request from one or more processors 291. For example, the user interface 196 includes a display device and an input device. Specific examples of the display device include a liquid crystal monitor or an organic EL (Electro-Luminescence) monitor. Specific examples of the input device include a keyboard, a mouse, or a keypad. The input device may be integrated with the display device as a so-called touch panel.

[0089] The upper controller 200 has a circuit 290. The circuit 290 has one or more processors 291, a memory 292, a storage 293, a communication port 294, an input / output port 295, and a communication port 296. The storage 293 is a non-volatile storage medium, and stores a program for configuring each of the above-mentioned functional blocks in the upper controller 200. The storage 293 may be a built-in storage medium such as a flash memory or a hard disk, or may be a portable storage medium such as a USB memory or an optical disk.

[0090] The memory 292 temporarily stores a program loaded from the storage 293. A specific example of the memory 292 is a random access memory. The one or more processors 291 configure each of the above-mentioned functional blocks by executing the program loaded in the memory 292. The one or more processors 291 store the calculation results in the memory 292 as appropriate.

[0091] The communication port 294 is a communication port for synchronous control communication, and communicates with the controller 100 based on a request from one or more processors 291. The input / output port 295 acquires information from the environmental sensor 4 etc. based on a request from one or more processors 291. The communication port 296 is a communication port for communication of a different system from the synchronous control communication, and communicates synchronously with the simulation device 300 based on a request from one or more processors 291. In this hardware configuration, the controller 100 communicates with the simulation device 300 via the upper controller 200.

[0092] The hardware configuration shown above is merely an example and can be modified as appropriate. For example, the control system CS1 does not necessarily have to be divided into the controller 100 and the upper controller 200. For example, the controller 100 may be incorporated into the upper controller 200. Furthermore, the control system CS1 may further include the above-mentioned simulation device in addition to the controller 100 and the upper controller 200. In this case, the controller 100 may be configured to cause the simulation device to execute generation of an additional path based on surrounding environment information.

[0093] [Control Procedure] Next, as an example of a control method, a control procedure executed by the control system CS1 will be specifically illustrated. This procedure includes sequentially calling a plurality of commands, generating an additional path, and operating the robot 3 based on the commands and the additional path, and while operating the robot 3 based on one command, the additional path is generated based on surrounding environment information. The control procedure by the control system CS1 may include a task generation procedure, an auto command placement procedure, and a program generation procedure executed by the controller 100, a system control procedure executed by the upper controller 200, a command calling procedure, an environmental change check procedure, and a robot control procedure executed by the controller 100. Each procedure will be illustrated in detail below.

[0094] (Autocommand placement procedure) As shown in Fig. 11, the controller 100 executes steps S01, S02, and S03. In step S01, the auto command placement unit 124 selects one task that does not include an auto command from among the multiple tasks stored in the task storage unit 121. In step S02, when the first via point in the one task is determined by a move command, the auto command placement unit 124 replaces the move command that determines the first via point with an auto command. The auto command placement unit 124 may insert an auto command before the move command that determines the first via point.

[0095] In step S03, the autocommand placement unit 124 checks whether placement of autocommands has been completed for all tasks that do not include autocommands. If it is determined in step S03 that tasks that do not include autocommands remain, the controller 100 returns the process to step S01. If it is determined in step S03 that placement of autocommands has been completed for all tasks that do not include autocommands, the controller 100 ends the process.

[0096] (Task creation procedure) 12, the controller 100 executes steps S11, S12, S13, and S14. In step S11, the command generation unit 131 acquires task information specifying two or more move commands. The command generation unit 131 may acquire the task information from the user interface 196.

[0097] In step S12, the command generating unit 131 generates an auto command to be executed before two or more move commands based on the acquired task information. For example, the command generating unit 131 generates an auto command including information on a destination point (start point of a task) in a transition operation to an operation corresponding to the two or more move commands based on the two or more move commands.

[0098] In step S13, the task generation unit 132 generates a task based on the generated auto command and the task information. For example, the task generation unit 132 generates a task by inserting the auto command generated by the command generation unit 131 before two or more move commands specified by the task information. In step S14, the task generation unit 132 stores the generated task in the task storage unit 121. This completes the task generation procedure.

[0099] (Program Generation Procedure) 13, the controller 100 executes steps S21 and S22. In step S21, the flow information acquisition unit 127 acquires the execution order of a plurality of tasks. In step S22, the flow information acquisition unit 127 stores the execution order in the flow saving unit 122. This completes the generation of the operation program for the robot 3.

[0100] (System Control Procedure) As shown in Fig. 14, the upper controller 200 executes steps S31, S32, and S33. In step S31, the system control unit 213 identifies a work command to be output next to the controller 100 based on the system program in the program storage unit 214. Hereinafter, the identified work command is referred to as a work command to be output. In step S32, the information collection unit 211 collects surrounding environment information, and stores the collected set of surrounding environment information in the environment information database 212 with time information. In step S33, the system control unit 213 checks whether an output condition has been assigned to the work command to be output.

[0101] If it is determined in step S33 that an output condition is assigned to the work command to be output, the upper controller 200 executes step S34. In step S34, the system control unit 213 checks whether the surrounding environment information satisfies the output condition. If it is determined in step S34 that the surrounding environment information does not satisfy the output condition, the upper controller 200 executes step S35. In step S35, the information collection unit 211 waits for the update cycle to elapse. Thereafter, the upper controller 200 returns the process to step S32. Thereafter, collection of the surrounding environment information is repeated for each update cycle until the surrounding environment information satisfies the output condition.

[0102] If it is determined in step S34 that the surrounding environment information satisfies the output condition, the upper controller 200 executes steps S36 and S37. If it is determined in step S33 that the output condition is not assigned to the work command to be output, the upper controller 200 also executes steps S36 and S37. In step S36, the system control unit 213 transmits the work command to be output to the controller 100. In step S37, the system control unit 213 waits for the update cycle to elapse. Thereafter, the controller 100 returns the process to step S31. The upper controller 200 repeatedly executes the above process.

[0103] (Command call procedure) As shown in Fig. 15, the controller 100 first executes steps S41, S42, and S43. In step S41, the task selection unit 123 selects one task from the multiple tasks stored in the task storage unit 121. For example, the task selection unit 123 selects one task from the execution order and multiple tasks stored in the flow storage unit 122. In step S42, the calling unit 111 calls one command from the one task. In step S43, the calling unit 111 checks whether the one command is a move command.

[0104] If it is determined in step S43 that the first command is not a move command, the controller 100 executes step S44. In step S44, the calling unit 111 checks whether the first command is an auto command. If it is determined in step S44 that the first command is not an auto command, the controller 100 returns the process to step S42.

[0105] If it is determined in step S44 that the command in step S1 is an auto command, the controller 100 executes steps S45, S46, and S47. In step S45, the path plan unit 112 waits for the timing to start generating an additional path. For example, the path plan unit 112 waits for a timing a predetermined generation margin time before the predicted completion timing of the preceding operation. In step S46, the path plan unit 112 generates an additional path from a waypoint (starting point) immediately before the destination point of the auto command to the destination point of the auto command, and stores the generated additional path in the path storage unit 113. In step S47, the environmental change check unit 125 turns the environmental flag "off" (clears it).

[0106] Next, the controller 100 executes step S53. In step S53, the path plan unit 112 changes the destination of the command to be called by the call unit 111 from the task storage unit 121 to the path storage unit 113. After that, the controller 100 returns the process to step S42. In step S42, the command is called from the path storage unit 113.

[0107] If it is determined in step S43 that the first command is a move command, the controller 100 executes steps S54 and S55. In step S54, the calling unit 111 stores the called command in the command storage unit 115. In step S55, the calling unit 111 checks whether the called command is an add command or not.

[0108] If it is determined in step S55 that the called command is an add command, the controller 100 executes step S56. In step S56, the calling unit 111 checks whether or not the calling of all the add commands stored in the path saving unit 113 has been completed.

[0109] If it is determined in step S56 that the calling of all the additional commands has been completed, the controller 100 executes step S57. In step S57, the calling unit 111 changes the calling destination of the command from the path saving unit 113 to the task saving unit 121.

[0110] Next, the controller 100 executes step S58. If it is determined in step S56 that an additional command that has not yet been called remains, the controller 100 executes step S58 without executing step S57. If it is determined in step S55 that the called command is not an additional command, the controller 100 executes step S58 without executing steps S56 and S57. In step S58, the calling unit 111 checks whether or not the calling of all commands included in one task has been completed.

[0111] If it is determined in step S58 that there is still a command remaining in task 1 that has not been called, the controller 100 returns the process to step S42. This allows the calling of commands from task 1 to continue. If it is determined in step S58 that all commands included in task 1 have been called, the controller 100 returns the process to step S41. This allows the next task to be selected. The controller 100 repeats the above procedure. Note that FIG. 15 omits the process when the multiple commands are neither move commands nor auto commands (for example, the above-mentioned shift command). If the multiple commands include a command that is neither move commands nor auto commands, a process for that command is added as appropriate.

[0112] Fig. 16 is a flowchart illustrating a procedure for generating an additional path in step S46. As shown in Fig. 16, the simulation device 300 first executes steps S92 and S93. In step S92, the path plan unit 112 interpolates the start point and the destination point with a straight line to provisionally generate an additional path. In step S93, the interference check unit 152 simulates the operation of the robot 3 based on the additional path, and checks whether there is any interference between the robot 3 and a surrounding object.

[0113] If it is determined in step S93 that there is interference, the controller 100 executes step S94. In step S94, the path plan unit 112 randomly generates a way point that does not interfere with surrounding objects and inserts it between the starting point and the destination point to correct the additional path. Thereafter, the controller 100 returns the process to step S93. Thereafter, the generation and addition of way points are repeated until the additional path does not cause interference between the robot 3 and surrounding objects.

[0114] If it is determined in step S93 that there is no interference, the controller 100 executes step S95. In step S95, the path plan unit 112 generates a plurality of addition commands each having the one or more added waypoints and the end point as waypoints. This completes the path generation procedure.

[0115] (Environmental change check procedure) 17, the controller 100 executes steps S61 and S62. In step S61, the environmental change checking unit 125 acquires surrounding environmental information as the above-mentioned reference information from the environmental information database 212. In step S62, the environmental change checking unit 125 checks whether or not the environmental flag has been cleared in the above-mentioned command calling procedure.

[0116] If it is determined in step S62 that the environment flag has not been cleared, the controller 100 executes step S63. In step S63, it is confirmed whether or not an update cycle of the environment flag has elapsed. If it is determined in step S63 that an update cycle has not elapsed, the controller 100 returns the process to step S62. Thereafter, steps S62 and S63 are repeated until the environment flag is cleared or an update cycle has elapsed.

[0117] If it is determined in step S63 that the update cycle has elapsed, the controller 100 executes steps S64 and S65. In step S64, the environmental change checking unit 125 acquires surrounding environment information from the environmental information database 212. In step S65, the environmental change checking unit 125 compares the surrounding environment information acquired in step S64 with the reference information to check whether there has been a change in the surrounding environment information.

[0118] If it is determined in step S65 that there is no change in the surrounding environment information, the controller 100 returns the process to step S62. If it is determined in step S65 that there is a change in the surrounding environment information, the controller 100 executes step S66. In step S66, the environmental change check unit 125 changes the environmental flag from "off" to "on". After that, the controller 100 returns the process to step S62.

[0119] If it is determined in step S62 that the environmental flag has been cleared, the controller 100 executes step S67. In step S67, the environmental change check unit 125 acquires surrounding environmental information from the environmental information database 212, and updates the reference information with the acquired surrounding environmental information. Thereafter, the controller 100 returns the process to step S62. Thereafter, while updating the reference information in response to the clearing of the environmental flag, the controller 100 repeatedly checks for any changes in the surrounding environmental information for each update cycle.

[0120] (Robot control procedure) 18, the controller 100 first executes steps S71 and S72. In step S71, the control unit 114 reads out one command from the command storage unit 115. In step S72, the control unit 114 checks whether the one command is an add command.

[0121] If it is determined in step S72 that the first command is not an additional command, the controller 100 executes steps S74 and S75. In step S74, the control unit 114 generates a series of control commands (e.g., a speed pattern) based on two or more commands including the first command and the one or more commands previously read out. In step S75, the control unit 114 starts controlling the robot 3 based on the series of control commands generated in step S74. Thereafter, the controller 100 returns the process to step S71.

[0122] If it is determined in step S72 that the command 1 is an add command, the controller 100 executes step S73. In step S73, the control unit 114 checks whether the environment flag is off. If it is determined in step S73 that the environment flag is off, the controller 100 advances the process to step S74.

[0123] If it is determined in step S73 that the environmental flag is on, the controller 100 executes steps S81, S82, and S83. In step S81, the control unit 114 clears (deletes) the contents of the command storage unit 115. In step S82, the path plan unit 112 waits for the timing of an auto command corresponding to the additional command based on the surrounding environment information. In step S46, the path plan unit 112 regenerates an additional path from a waypoint (starting point) immediately before the destination point of the auto command to the destination point of the auto command, and stores the generated additional path in the path storage unit 113. In step S83, the environmental change check unit 125 sets (clears) the environmental flag to "off."

[0124] Next, the controller 100 executes step S86. In step S86, the path plan unit 112 changes the destination of the command called by the calling unit 111 from the task storage unit 121 to the path storage unit 113. As a result, the two or more regenerated additional commands are called in sequence by the calling unit 111 in the above-mentioned command calling procedure, and are stored in the command storage unit 115. After that, the controller 100 returns the process to step S71. The controller 100 repeatedly executes the above-mentioned processes.

[0125] 〔summary〕 The robot system 1 includes a calling unit 111 that sequentially calls multiple commands that represent the movement path of the robot 3 including an undetermined section, a path planning unit 112 that generates an additional path for the undetermined section, and a control unit 114 that operates the robot 3 based on the commands called by the calling unit 111 and the additional path, and the path planning unit 112 generates the additional path based on information about the surrounding environment of the robot 3 when the control unit 114 is operating the robot 3 based on one command.

[0126] According to this robot system 1, an additional path is generated based on the surrounding environment information after the robot 3 starts an operation based on a plurality of commands, and the operation by the robot 3 is continued based on the generated additional path. Therefore, it is possible to cause the robot 3 to execute an operation that flexibly corresponds to changes in the surrounding environment, changes in the work content, changes in the work procedure, etc. Hereinafter, generating an additional path after the robot 3 starts an operation based on a plurality of commands is referred to as "online path generation".

[0127] The multiple commands include a move command including information on a waypoint of the motion path, and an auto command including information on a waypoint of the motion path that is a destination point of the undetermined section, and the path plan unit 112 may generate an additional path to the destination point in the undetermined section based on the auto command after the move command and the surrounding environment information when the control unit 114 is operating the robot 3 based on the move command. It becomes possible to easily specify a section in which the robot 3 is operated according to a predetermined motion path, and a section in which the robot 3 is operated according to the additional path generated by the path plan unit 112. An existing motion program for the robot 3 may be written by enumerating multiple commands including a move command. According to a configuration in which an additional path is generated based on the auto command and the surrounding environment information, a motion program including online path generation can be easily generated by using an existing motion program.

[0128] The system further includes a task storage unit 121 that stores a plurality of tasks each including two or more move commands, and a task selection unit 123 that selects one task from the plurality of tasks stored in the task storage unit 121, and the calling unit 111 may call an auto command before calling the move command included in the one task selected by the task selection unit 123. The robot 3 can be easily operated based on the plurality of tasks that are individually generated.

[0129] At least one of the multiple tasks may include an auto command before two or more move commands, and the calling unit 111 may call the auto command from one task selected by the task selecting unit 123. The robot 3 can be operated more easily based on the multiple tasks that are individually generated.

[0130] The system may further include a command generation unit 131 that generates an auto command to be executed before two or more move commands based on task information specifying two or more move commands, and a task generation unit 132 that generates a task based on the generated auto command and the task information. This can simplify the task generation work including the auto command. It is also possible to prevent operational errors between tasks due to missing auto commands.

[0131] The system may further include an autocommand placement unit 124 that, when the first waypoint in one task is determined by a move command, replaces the move command that determines the first waypoint with an autocommand or inserts an autocommand before the move command that determines the first waypoint. An existing task that does not have an autocommand can be easily converted into a task that includes an autocommand.

[0132] When the first via point in one task is determined by a move command, the call unit 111 may reinterpret the move command that determines the first via point as an auto command that sets the first via point as the destination. Online path generation can be used while leaving existing tasks that do not include auto commands without rewriting them.

[0133] The path plan unit 112 may generate an additional path from a waypoint immediately before the destination point to the destination point. By using the immediately before waypoint as the starting point, it becomes unnecessary to define the starting point in the autocommand, and therefore the autocommand can be simplified.

[0134] The multiple commands may include a shift command for shifting a via point, and when the calling unit 111 calls an auto command after a shift command, the path plan unit 112 may generate an additional path to a shift destination point by shifting the via point of the auto command based on the shift command. By making the shift command applicable to the auto command as well, it is possible to further simplify the operation programming.

[0135] The path plan unit 112 may start generating the additional path at a timing when the generation of the additional path is completed before the operation corresponding to the move command immediately before the auto command is completed. In this case, the state in which the robot 3 stops waiting for the generation of the additional path is reduced, and the robot 3 can be operated more smoothly.

[0136] The path plan unit 112 may generate two or more new move commands that define the additional path based on the surrounding environment information, which can simplify the calculation for generating the additional path.

[0137] After the calling unit 111 calls the auto command, the path plan unit 112 generates two or more new move commands that determine the additional path based on the auto command and the surrounding environment information, the calling unit 111 stores two or more commands including the two or more new move commands in the command storage unit, and the control unit 114 may operate the robot 3 based on the two or more commands stored in the command storage unit. By operating the robot 3 based on the two or more commands stored in the command storage unit, the state in which the robot 3 stops waiting for the next command can be reduced, and the robot 3 can be operated more smoothly. In this way, by combining the result of online path generation with the mechanism for operating the robot 3 based on the two or more commands stored in the command storage unit, the operation section based on the path information of the move command and the operation section based on the additional path can be smoothly connected, and the robot 3 can be operated more smoothly.

[0138] The control unit 114 may generate a series of control commands for the robot 3 based on two or more commands stored in the command storage unit, and operate the robot 3 based on the series of control commands. This allows the robot 3 to operate more smoothly.

[0139] The calling unit 111 may change the number of commands stored in the command storage unit so that the predicted time for the operation corresponding to two or more commands stored in the command storage unit is longer than at least the time required for the path plan unit 112 to generate an additional path. This further reduces the state in which the robot 3 stops waiting for the generation of an additional path, and allows the robot 3 to operate more smoothly.

[0140] The auto command may include condition information that indicates a generation condition when the additional path is generated based on the surrounding environment information, and the path plan unit 112 may generate the additional path further based on the condition information. By setting the condition information, a more appropriate additional path can be generated.

[0141] The system may further include an interference check unit 312 that simulates the operation of the robot 3 based on the additional path generated by the path planning unit 112 to check whether the robot 3 will interfere with surrounding objects present in the surrounding environment, and the control unit 114 may operate the robot 3 based on the additional path generated by the path planning unit 112 if the robot 3 will not interfere with the surrounding objects. This can improve the reliability of the operation of the robot 3, including the online path generation.

[0142] The robot 3 may further include at least an information collecting unit 211 that updates the surrounding environment information before and after the path planning unit 112 generates the additional path, and an environment change checking unit 125 that checks whether there is any change in the surrounding environment information before and after the path planning unit 112 generates the additional path, based on the surrounding environment information. This can further improve the reliability of the operation of the robot 3, including the online path generation.

[0143] The control unit 114 may operate the robot 3 based on the additional path when there is no change in the surrounding environment information before and after the path plan unit 112 generates the additional path. This can further improve the reliability of the operation of the robot 3, including the online path generation.

[0144] When the surrounding environment information changes before and after the generation of the additional path, the path plan unit 112 may regenerate the additional path based on the surrounding environment information after the change. This can further improve the reliability of the operation of the robot 3, including the online path generation.

[0145] The above-described embodiment includes a robot system including a calling unit 111 that sequentially calls a plurality of commands including a plurality of move commands including information on via points of a movement path of the robot 3 including an undetermined section and an auto command including information on a via point of the movement path that is a destination point of the undetermined section, a path planning unit 112 that generates an additional path to a destination point in the undetermined section based on the auto command and information on the surrounding environment of the robot 3, and a control unit 114 that operates the robot 3 based on the command called by the calling unit 111 and the additional path.

[0146] Furthermore, the above-mentioned embodiment includes a command generation unit 131 that generates an auto command including information on a destination point in a transition operation to an operation corresponding to two or more move commands based on task information specifying two or more move commands, each including information on a via point of the operation path of the robot 3, and a task generation unit 132 that generates a task based on the generated auto command and the task information, and when a task is selected, an additional path to the destination point of the auto command of the task is generated based on information on the surrounding environment of the robot 3, and the robot 3 operates based on the generated additional path and the two or more move commands of the task. [Explanation of symbols]

[0147] 1...robot system, 3...robot, 111...calling section, 112...path planning section, 114...control section, 121...task storage section, 123...task selection section, 124...auto command placement section, 131...command generation section, 132...task generation section, 125...environmental change check section, 211...information collection section, 312...interference check section.

Claims

1. A task storage unit that stores a plurality of tasks for a robot; a task selection unit that selects a task from the task storage unit; a path planning unit that generates an additional path to a start position of the selected task based on surrounding environment information of the robot in response to the selection of the task; a control unit that operates the robot based on the generated additional path and the selected task; Equipped with The control unit operates the robot based on the generated additional path and the selected task in response to the robot completing the previously selected task and the additional path being generated.

2. The robot system of claim 1, wherein the path planning unit generates the additional path during a period that at least partially overlaps with a period during which the robot is executing the previously selected task.

3. The robot system according to claim 1 , wherein the path plan unit generates the additional path from a completion position of the previously selected task to a start position of the selected task.

4. A robot system as described in any one of claims 1 to 3, wherein the task selection unit autonomously selects a task suitable for the surrounding environment based on information about the surrounding environment of the robot.

5. The robot system according to any one of claims 1 to 4, wherein the path planning unit starts generating the additional path at a timing when the generation of the additional path is completed before the robot completes the task selected one before.

6. Each of the plurality of tasks includes two or more move commands including information of waypoints of a predetermined motion path of the robot; the path plan unit generates two or more new move commands that define the additional path based on the surrounding environment information; The robot system according to any one of claims 1 to 4, wherein the control unit operates the robot along the additional path based on the two or more new move commands, and then operates the robot along the movement path based on the two or more move commands.

7. Further comprising a calling unit which sequentially calls the two or more new move commands and the two or more move commands and stores them in a command storage unit in chronological order; The robot system according to claim 6 , wherein the control unit causes the robot to operate based on a plurality of move commands stored in chronological order in the command storage unit.

8. Sequentially selecting a plurality of robot tasks stored in a task storage unit; In response to the selection of the task, generating an additional path to a start position of the selected task based on surrounding environment information of the robot; operating the robot based on the generated additional path and the selected task; Including, A control method for operating a robot based on the generated additional path and the selected task in response to the robot completing a previously selected task and the additional path being generated.