Robot system, task generation device, and control method

The robot system addresses the challenge of simplifying motion programming by generating additional paths for undetermined sections based on environment information, improving flexibility and efficiency in task execution.

JP7807486B2Active Publication Date: 2026-01-27YASKAWA DENKI KK
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024074693
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-05-02
Publication Date
2026-01-27
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 movement paths and adapting to changes in the surrounding environment.

Method used

A robot system with a control system that includes a calling unit, path planning unit, and control unit, which generates additional paths for undetermined sections based on surrounding environment information, allowing the robot to operate flexibly and adapt to environmental changes.

Benefits of technology

The system simplifies operation programming by enabling robots to handle undetermined sections and respond to environmental changes, enhancing flexibility and efficiency in task execution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007807486000001
    Figure 0007807486000001
  • Figure 0007807486000002
    Figure 0007807486000002
  • Figure 0007807486000003
    Figure 0007807486000003
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 will prevent interference between the robot and obstacles in the work environment when the robot's start and goal positions are given, using a computerized geometric model means that describes the geometric shapes of the robot and the work environment and their arrangement, and a computerized interference inspection means that inspects for interference between the models. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2000-20117 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 representing 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 on waypoints of a robot's motion path that includes an undetermined section and an auto command including information on the waypoint of the motion path that is a destination point of the undetermined section; a path planning unit that generates an additional path to the destination point in the undetermined section based on the auto command and information about the robot's surrounding environment; and a control unit that operates the robot based on the commands and additional path called by the calling unit.

[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 the 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 contains information on via points 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 motion 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. [Effects 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 explanation of the drawings]

[0010] [Figure 1] FIG. 1 is a schematic diagram illustrating a configuration of a robot system. [Figure 2]FIG. 1 is a schematic diagram illustrating a configuration of a robot. [Figure 3] FIG. 2 is a block diagram illustrating an example of the functional configuration of a controller. [Figure 4] FIG. 10 is a diagram illustrating a plurality of commands. [Figure 5] FIG. 2 is a block diagram illustrating a configuration of a path planning unit. [Figure 6] 10 is a timing chart showing the relationship between the operation period of the robot and the generation period of an additional path. [Figure 7] FIG. 2 is a schematic diagram illustrating an example of the contents stored in a task storage unit; [Figure 8] FIG. 10 is a block diagram showing a modified example of the controller. [Figure 9] FIG. 2 is a block diagram illustrating the 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] 10 is a flowchart illustrating an autocommand placement procedure. [Figure 12] 10 is a flowchart illustrating a task generation procedure. [Figure 13] 10 is a flowchart illustrating a program generation procedure. [Figure 14] 10 is a flowchart illustrating a system control procedure. [Figure 15] 10 is a flowchart illustrating a command calling procedure. [Figure 16] 10 is a flowchart illustrating a path generation procedure. [Figure 17] 10 is a flowchart illustrating an example of an environmental change check procedure. [Figure 18] 10 is a flowchart illustrating a control procedure for a robot based on a command. DETAILED DESCRIPTION OF THE INVENTION

[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 redundant description will be omitted.

[0012] [Robot System] The robot system 1 shown in Fig. 1 is a system that performs the production of workpieces using multiple machines including one or more robots. The tasks that the robot system 1 causes the multiple machines to perform are not limited to the production of workpieces. 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 using power such as an electric motor. Specific examples of the conveyor 2 include a belt conveyor and a roller conveyor. Each of the multiple robots 3 performs work on the workpieces transported by the conveyor 2. Specific examples of work on the workpieces include assembling other workpieces (e.g., sub-parts) to a workpiece (e.g., a base part) transported by the conveyor 2, and fastening (e.g., bolting) and joining (e.g., welding) parts of the workpieces transported by the conveyor 2.

[0014] FIG. 2 is a schematic diagram illustrating the configuration of a 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 about a vertical axis 21. The first arm 13 is connected to the swivel 12 so as to swing about an axis 22 that intersects (e.g., is perpendicular to) the axis 21, and extends in a direction away from the axis 22. The intersection includes a twisted relationship such as a so-called multi-level intersection. The same applies hereinafter.

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

[0016] Third arm 17 is connected to the tip of arm end portion 16 so as to swing about axis 25 intersecting (e.g., perpendicular to) axis 24. Tip portion 18 is connected to the tip of third arm 17 so as to pivot 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 end 18 around the axis 26.

[0019] The specific configuration of the robot 3 can be changed as appropriate. 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 the 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 path of a part of the robot 3 (for example, the tip 18). The motion path may represent the transition of the position and posture of the tip 18. The motion path includes multiple sections. Each of the multiple sections is between two waypoints of the motion path. The multiple sections include multiple predefined sections and one or more undetermined sections. Each of the multiple predefined sections is a section in which a movement path between two waypoints (for example, a movement path of the tip 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] If only the sections of the motion path that are essential for the motion objective, such as work production, are taught in advance as predetermined sections, the remaining undetermined sections are filled in by the control system CS1, making it easier to teach the robot 3 how to move.

[0024] Furthermore, according to the control system CS1, an additional path is generated based on the surrounding environment information after the robot 3 starts operations based on a plurality of commands, and the robot 3 continues operations based on the generated additional path. Therefore, it is possible to make the robot 3 perform operations that flexibly respond to changes in the surrounding environment.

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

[0026] In controlling the robot 3 based on a 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 an example of the functional configuration of the controller 100. As shown in Fig. 3, the controller 100 has, as functional components (hereinafter referred to as "functional blocks"), a calling unit 111, a path planning unit 112, a path saving unit 113, and a control unit 114.

[0028] The calling unit 111 sequentially calls a plurality of commands that represent the movement 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 also include a plurality of move commands and one or more autocommands.

[0032] The move command includes information about waypoints of the movement path. The waypoints determine at least the position of the tip portion 18. The waypoints may determine the position and orientation of the tip portion 18. The waypoints 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 waypoints of the move command may be taught points taught by an operator through offline teaching, online teaching, or the like.

[0033] The move command may further include path specification information. The path specification information is information for specifying the path of the section up to the waypoint of the move command and making that section the above-mentioned default section. Hereinafter, the section up to the waypoint of the move command will be referred to as the "move section", and the path of the move section will be referred to as the "move section path". For example, the path information represents a path specification condition that determines a set of move section paths. Specific examples of path specification 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 autocommands includes information on a via point of the motion path that is the destination of the undetermined section. Each of the one or more autocommands may further include condition information that indicates the generation conditions for generating an additional path. Specific examples of the generation conditions include a path specification condition for the additional command described below, a condition for the movement speed of the additional path, a condition for the acceleration of the additional path, a condition for the deceleration of the additional path, a condition for the attitude of the tip 18 of the additional path, and a condition for whether to allow reuse of an already generated additional path when there is no change in the surrounding environment information. Like the via points of the move command, the via points of the autocommand may also be taught points taught by the operator through offline teaching, online teaching, etc.

[0035] Figure 4 is a diagram illustrating a number of commands. Figure 4 shows commands C1, C2, C3, C4, C5, C6, C7, C8, and C9. Commands C1, C2, C3, C4, C6, C7, and C8 are move commands, and commands C5 and C9 are auto commands. In Figure 4, the waypoints for each command are entered as arguments in parentheses.

[0036] In commands C1, C2, C3, C4, C6, C7, and C8, the letter 1 added after "Move" corresponds to an example of path information. For example, "L" indicates that a straight line is used to supplement the connection between the position and orientation of the tip 18 at the start point and the position and orientation of the tip 18 at the end point. "S" indicates that an S-shaped curve is used to supplement the connection between the position and orientation of the tip 18 at the start point and the position and orientation of the tip 18 at the end point. "J" indicates that a straight line is used to supplement the connection between the angles of the joints 31, 32, 33, 34, 35, and 36 at the start point and the angles of the 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 Figure 4, multiple commands including a move command and an auto command represent a motion path including a predetermined section (move section) corresponding to the move command and an undetermined section corresponding to the auto command. Returning to Figure 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 (destination point) of the auto command to the destination point. Note that in cases such as when the auto command is at the beginning of multiple commands, the path planning unit 112 may generate an additional path using 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 along a series of operation 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 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 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 one or more additional paths, but not pass through one or more waypoints of the movement paths.

[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 the auto command based on the auto command that comes after 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 that corresponds to the move command. The path planning unit 112 may also generate an additional path when the control unit 114 is operating the robot 3 along a move section path that corresponds to a move command that comes two or more times before the auto command.

[0042] When the control unit 114 is operating the robot 3 based on a preceding autocommand, the path planning unit 112 may generate an additional path for the undetermined section corresponding to the subsequent autocommand based on the subsequent autocommand and surrounding environment information.When the control unit 114 is operating the robot 3 based on an autocommand that precedes the subsequent autocommand by two or more times, the path planning unit 112 may generate an additional path for the undetermined section corresponding to the subsequent autocommand based on the subsequent autocommand and surrounding environment information.

[0043] The path planning 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.

[0044] 5, the path planning 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 movement of the conveyor 2 and the multiple robots 3 to check whether the robots 3 will interfere with surrounding objects in the surrounding environment or with the robots themselves. For example, the interference check unit 152 simulates the movement of the robots 3 based on an additional path, using 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 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 generation unit 153 generates an additional path. For example, the path generation unit 153 first tentatively generates an additional path by interpolating a starting point and a destination point using a straight line, and then causes the interference check unit 152 to simulate the movement of the robot 3 based on the tentatively generated additional path. If the simulation by the interference check unit 152 determines that the robot 3 interferes with a peripheral object, the path generation 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 an additional path connecting the starting point, the one or more generated via points, and the destination point prevents interference between the robot 3 and the peripheral object. Thereafter, the path generation unit 153 generates two or more additional commands using the one or more added via points and the destination point as via points, respectively.

[0048] In this way, the interference check unit 152 confirms that the robot 3 will not interfere with any 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 any surrounding objects.

[0049] Returning to FIG. 3 , the path planning unit 112 stores the two or more generated additional paths in the path storage unit 113. For example, the path planning unit 112 stores the two or more generated additional commands in the path storage unit 113. The path planning unit 112 may cause a simulation device that can communicate with the controller 100 to generate an additional path. For example, the path planning 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 the 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 planning unit 112 may generate two or more additional commands based on the autocommand and surrounding environment information after the calling unit 111 calls the autocommand. For example, the path planning unit 112 generates an additional path from a waypoint (starting point) immediately before the waypoint (destination point) of the autocommand 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 the commands 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 the 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 the 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 calculates target angles for 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 end unit 18, and repeatedly executes the following in a predetermined control cycle: calculating target angles for the joints 31, 32, 33, 34, 35, and 36, and causing the angles of the joints 31, 32, 33, 34, 35, and 36 to follow the target angles.

[0054] The path planning 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 planning 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 planning 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 required to generate the additional path and the time required to generate the control command.

[0056] Specific examples of 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 saving unit 115 so that the predicted time for the operations corresponding to two or more commands stored in the command saving unit 115 is longer than at least the time required for the path planning 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 saving unit 115.

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

[0059] 6, the predicted time T12 for 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 ample 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 before the predicted completion timing t1 by the generation margin time T11.

[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, if the autocommand includes the condition information, the path planning unit 112 may generate an additional path based on the condition information. For example, the path planning unit 112 may generate 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 planning unit 112 generates an additional path to a shift destination point 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 shifting of the via point by the shift command. When the calling unit 111 calls an auto command after a shift command but before a shift off command, the path planning unit may generate an additional path to a shift destination point 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 have been called by the calling unit 111.

[0065] The task storage unit 121 may store multiple tasks in advance, or may acquire multiple tasks from a higher-level device (e.g., a cloud computer) as needed and store the acquired multiple tasks. The task selection unit 123 may select one task in a predetermined order from the multiple 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 user input to a user interface, etc., and stores it 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 autocommand before two or more move commands. For example, each of the multiple tasks may include an autocommand 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 autocommand, and the autocommand 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 autocommand, calling unit 111 calls the autocommand 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 a 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 makes it possible to convert an existing task that does not include an autocommand into a task that includes an autocommand and utilize the converted autocommand.

[0069] As shown in FIG. 8, the controller 100 may further include a command generation unit 131 and a task generation unit 132. Based on task information specifying two or more move commands, the command generation unit 131 generates an auto command to be executed before the two or more move commands. For example, the command generation 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 generation unit 131 identifies a destination point (a starting 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 about the identified destination point.

[0070] The task generation unit 132 generates a task based on the generated autocommand and task information. For example, the task generation unit 132 generates a task by inserting the autocommand 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 that includes an autocommand. It can also prevent malfunctions between tasks due to missing autocommands.

[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 autocommand 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 autocommands unchanged.

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

[0073] As an example, the environmental change check unit 125 indicates whether or not there has been 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 will be 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 has been a change in the surrounding environment information based only on items of the surrounding environment information that have been 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 if there is no change in the surrounding environment information before and after the path planning 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 if the environment flag is "off", operate the robot 3 based on the additional path.

[0076] The control unit 114 may stop the operation of the robot 3 based on the additional path if 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 if the environment flag is "on", clear (erase) the contents of the command storage unit 115. This prevents the generation of a speed pattern following the already generated speed pattern, so the operation of the robot 3 may be temporarily halted when the operation based on the already generated speed pattern is completed.

[0077] If 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, if 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 two or more regenerated additional commands in the path storage unit 113. Thereafter, the calling unit 111 sequentially reads out the two or more regenerated additional commands and stores them in the command storage unit 115. When the two or more regenerated 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 operations based on at least a plurality of commands. The path planning unit 112 may generate the additional path immediately when the waypoint immediately before the waypoint of the autocommand is determined.

[0079] If an additional path is generated immediately when the waypoint immediately before the waypoint of the autocommand is confirmed, there is a possibility that the waiting time from the generation of the additional path to the start of operation of the robot 3 based on the additional path will be long. If the additional path is regenerated within the waiting time, the operation of the robot 3 can be continued using the regenerated additional path without stopping the operation of the robot 3. If there is ample waiting time, the environmental change check unit 125 may check whether or not there has been a change in the surrounding environment information each time an additional path is regenerated, and the path plan unit 112 may regenerate the additional path each 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 host controller 200. As shown in Fig. 9, the host controller 200 has, as functional blocks, an information collection unit 211, an environmental information database 212, a system control unit 213, and a program storage unit 214. The information collection unit 211 collects surrounding environmental information and stores it in the environmental information database 212.

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

[0083] The program storage unit 214 stores a system program that is predetermined to cause a plurality of robots 3 to cooperate to perform a series of tasks. For example, the system program includes a series of work commands for each of the plurality of robots 3. The system program may include output conditions for at least one 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 multiple tasks in the execution order stored in the flow storage unit 122, and the like.

[0086] FIG. 10 is a block diagram illustrating an example of the hardware configuration of the controller 100 and the upper controller 200. The controller 100 includes a circuit 190. The circuit 190 includes 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 that stores a program for causing the controller 100 to execute a control method that includes sequentially calling multiple commands, generating an additional path, and operating the robot 3 based on the called commands and the additional path, and that generates 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 an internal storage medium such as a flash memory or a hard disk, or a portable storage medium such as a USB memory or an optical disk.

[0087] The memory 192 temporarily stores the 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 the above-mentioned functional blocks by executing the program loaded into 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 drive 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 the 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 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 on a system separate 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 generate additional paths 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 multiple commands, generating an additional path, and operating the robot 3 based on the commands and the additional path. 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, and a command call 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) 11, the controller 100 executes steps S01, S02, and S03. In step S01, the autocommand placement unit 124 selects one task that does not include an autocommand from the multiple tasks stored in the task storage unit 121. In step S02, if the first waypoint in the 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.

[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 generation 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 generation unit 131 generates an auto command based on two or more move commands, including information about a destination point (starting point of a task) in a transition operation to an operation corresponding to the two or more move commands.

[0098] In step S13, task generation unit 132 generates a task based on the generated autocommand and task information. For example, task generation unit 132 generates a task by inserting the autocommand generated by command generation unit 131 before two or more move commands specified by the task information. In step S14, task generation unit 132 stores the generated task in 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 the next work command to be output to the controller 100 based on the system program in the program storage unit 214. Hereinafter, the identified work command will be referred to as the work command to be output. In step S32, the information collection unit 211 collects surrounding environment information, assigns time information to the collected set of surrounding environment information, and stores it in the environment information database 212. In step S33, the system control unit 213 checks whether output conditions have been assigned to the work command to be output.

[0101] If it is determined in step S33 that an output condition has been assigned to the work command to be output, the host 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 host controller 200 executes step S35. In step S35, the information collection unit 211 waits for the update cycle to elapse. Thereafter, the host controller 200 returns the process to step S32. Thereafter, collection of 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 host 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 host 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 host controller 200 repeatedly executes the above process.

[0103] (Command call procedure) 15, the controller 100 first executes steps S41, S42, and S43. In step S41, the task selection unit 123 selects one task from a plurality of tasks stored in the task storage unit 121. For example, the task selection unit 123 selects one task from the execution order and a plurality of 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 command 1 is not a move command, the controller 100 executes step S44. In step S44, the calling unit 111 checks whether the command 1 is an auto command. If it is determined in step S44 that the command 1 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 S44 is an auto command, the controller 100 executes steps S45, S46, and S47. In step S45, the path planner 112 waits for the timing to start generating an additional path. For example, the path planner 112 waits for a timing that is a predetermined generation margin time before the predicted completion timing of the preceding operation. In step S46, the path planner 112 generates an additional path from the 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 checker 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 called by the calling unit 111 from the task storage unit 121 to the path storage unit 113. Thereafter, 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 command in step S1 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.

[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 all additional commands have been called, the controller 100 executes step S57. In step S57, the calling unit 111 changes the command call destination from the path storage unit 113 to the task storage 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 are commands remaining in task 1 that have not yet 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 the calling of all commands included in task 1 has been completed, the controller 100 returns the process to step S41. This allows the next task to be selected. The controller 100 repeatedly executes 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 command nor auto command, a process for that command is added as appropriate.

[0112] 16 is a flowchart illustrating the 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 using a straight line to tentatively 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 planner 112 randomly generates a way point that does not interfere with surrounding objects and inserts it between the start point and the destination point to correct the additional path. The controller 100 then 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 that respectively include the one or more added way points and the end point. 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, as the reference information, surrounding environmental information from the environmental information database 212. In step S62, the environmental change checking unit 125 checks whether the environmental flag has been cleared in the command calling procedure described above.

[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 checked whether the update cycle of the environment flag has elapsed. If it is determined in step S63 that the 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 the 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 check unit 125 acquires surrounding environment information from the environmental information database 212. In step S65, the environmental change check 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 environment change check unit 125 changes the environment flag from "off" to "on". Thereafter, 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 based on the acquired surrounding environmental information. The controller 100 then returns the process to step S62. Thereafter, the controller 100 repeatedly updates the reference information in response to the clearing of the environmental flag, while checking for any changes in the surrounding environmental information at 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 proceeds 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 planning 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 planning unit 112 regenerates an additional path from the 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 checking unit 125 turns the environmental flag "off" (clears it).

[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 command calling procedure described above, and are stored in the command storage unit 115. Thereafter, the controller 100 returns the process to step S71. The controller 100 repeatedly executes the above process.

[0125] 〔summary〕 The robot system 1 includes a calling unit 111 that sequentially calls multiple commands representing 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 information about the surrounding environment after the robot 3 has started to operate based on a plurality of commands, and the robot 3 continues to operate based on the generated additional path. Therefore, the robot 3 can be made to perform operations that flexibly respond to changes in the surrounding environment, changes in work content, changes in work procedures, etc. Hereinafter, generating an additional path after the robot 3 has started to operate based on a plurality of commands will be referred to as "online path generation."

[0127] The multiple commands include a move command including information on a via point of the movement path and an auto command including information on a via point of the movement path that is a destination point in the undetermined section. While the control unit 114 is operating the robot 3 based on the move command, the path planning unit 112 may generate an additional path to the destination point in the undetermined section based on the auto command following the move command and the surrounding environment information. This makes it possible to easily specify the section in which the robot 3 operates according to a predetermined movement path and the section in which the robot 3 operates according to the additional path generated by the path planning unit 112. Existing robot 3 movement programs may be written by enumerating multiple commands including a move command. A configuration that generates an additional path based on the auto command and the surrounding environment information allows for easy generation of a movement program that includes online path generation using an existing movement 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 individually generated tasks.

[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 simplifies the task generation process including auto-commands. It also makes it possible to prevent malfunctions between tasks due to missing auto-commands.

[0131] The system may further include an autocommand placement unit 124 that, when the first waypoint in a 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 a task is determined by a move command, the calling unit 111 may reinterpret the move command that determines the first via point as an autocommand that sets the first via point as the destination. Online path generation can be used while leaving existing tasks that do not include autocommands unchanged.

[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 preceding waypoint as the starting point, it is no longer necessary to specify the starting point in the autocommand, which simplifies the autocommand.

[0134] The multiple commands may include a shift command that shifts a via point, and when the calling unit 111 calls an auto command after a shift command, the path planning 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. Making the shift command applicable to the auto command also makes it possible to further simplify operation programming.

[0135] The path planning 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 while waiting for the generation of the additional path is reduced, and the robot 3 can operate 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, thereby simplifying the calculations required to generate the additional path.

[0137] After the calling unit 111 calls the auto command, the path planning unit 112 may generate two or more new move commands that define an additional path based on the auto command and the surrounding environment information, the calling unit 111 may store 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. Operating the robot 3 based on the two or more commands stored in the command storage unit reduces the number of times the robot 3 stops waiting for the next command, allowing the robot 3 to operate more smoothly. In this way, by combining the results of online path generation with a mechanism for operating the robot 3 based on two or more commands stored in the command storage unit, it is possible to smoothly connect the operation section based on the path information of the move command and the operation section based on the additional path, allowing the robot 3 to operate 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 planning unit 112 to generate an additional path. This further reduces the number of times the robot 3 stops while waiting for the generation of an additional path, allowing the robot 3 to operate more smoothly.

[0140] The autocommand may include condition information that indicates conditions for generating the additional path based on the surrounding environment information, and the path plan unit 112 may generate the additional path 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 and checks 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 surrounding objects. This can improve the reliability of the operation of the robot 3, including online path generation.

[0142] The robot 3 may further include at least an information collection unit 211 that updates the surrounding environment information before and after the path planning unit 112 generates the additional path, and an environment change check 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 online path generation.

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

[0144] If the surrounding environment information changes before and after generating the additional path, the path planning unit 112 may regenerate the additional path based on the changed surrounding environment information, which can further improve the reliability of the operation of the robot 3, including 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 the movement path of the robot 3 including an undetermined section and an auto command including information on the via point of the movement path that is the destination point of the undetermined section; a path planning unit 112 that generates an additional path to the 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-described 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 unit, 112...Path planning unit, 114...Control unit, 121...Task storage unit, 123...Task selection unit, 124...Auto command placement unit, 131...Command generation unit, 132...Task generation unit, 125...Environment change check unit, 211...Information collection unit, 312...Interference check unit.

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. A robot system as described in 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 planner 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 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. 5. The robot system according to claim 1, wherein the path planning unit starts generating the additional path at a timing when generation of the additional path is completed before the robot completes the previously selected task.

6. Each of the plurality of tasks includes two or more move commands including information on a predetermined waypoint of the robot's motion path; the path planning 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. A calling unit is further provided 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 tasks for the robot 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 ambient 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 the previously selected task and the additional path being generated.

Citation Information

Patent Citations

  • Method and device for planning operation route of robot

    JP2000020117A

  • Robot operation command generating method, robot operation command generating device and computer program

    JP2018167361A

  • Control apparatus, gripping system, method, and program

    JP2022021147A