Robot system and control method
By designing a robot system including a calling unit, a path planning unit and a control unit, the problem of difficulty in simplifying robot operation programming in the prior art is solved, and efficient operation path planning and flexible operation capabilities are achieved.
Patent Information
- Application Number
- CN202410801147.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-02-10
- Filing Date
- 2023-02-08
- Publication Date
- 2025-06-27
- Estimated Expiration
- 2043-02-08
AI Technical Summary
The prior art is difficult to simplify robot operation programming, especially when processing operation paths with undetermined intervals.
A robot system is designed, including a calling unit, a path planning unit and a control unit. The calling unit sequentially calls a plurality of commands representing the robot's operation path, the path planning unit generates an additional path for the undetermined interval, and the control unit operates the robot based on the called command and the additional path. When the control unit operates the robot, the path planning unit generates additional paths based on the robot's surrounding environment information.
It realizes simplified operation programming, improves the operating efficiency and flexibility of the robot system, and can adapt to changes in the surrounding environment.
Smart Images

Figure CN118559714B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with the original application number 202310141555.7 (application date: February 8, 2023, invention title: Robot system and control method). Technical Field
[0002] The present disclosure relates to a robot system and a control method. Background Art
[0003] Japanese Patent Laid-Open No. 2000-20117 discloses a method for planning a motion path of a robot. In this method, by using a geometric model device on a computer that describes the geometry and layout of the robot and the working environment, and an interference checking device on the computer for checking interference between models, when the starting layout and the target layout of the robot are given, the robot and the obstacles in the working environment do not interfere with each other. Summary of the Invention
[0004] Technical Problem
[0005] The present disclosure provides an efficient robot system for simplifying operation programming.
[0006] Technical Solution
[0007] A robot system according to one aspect of the present disclosure includes: a calling unit configured to sequentially call a plurality of commands representing an operation path of a robot including an undetermined section; a path planning unit configured to generate an additional path for the undetermined section; and a control unit configured to operate the robot based on the commands called by the calling unit and the additional path, wherein the path planning unit is configured to generate an additional path based on the surrounding environment information of the robot during the operation of the robot by the control unit based on the commands called from the plurality of commands.
[0008] A robot system according to another aspect of the present disclosure includes: a calling unit configured to sequentially call a plurality of commands representing an operation path of a robot including an undetermined section; wherein the plurality of commands include a plurality of movement commands each including information of a waypoint of the operation path and an automatic command including information of an arrival point of the undetermined section; a path planning unit configured to generate an additional path to the arrival point in the undetermined section based on the automatic command and the surrounding environment information of the robot; and a control unit that operates the robot based on the commands called by the calling unit and the additional path.
[0009] The task generation device according to another aspect of the present disclosure includes: a command generation unit configured to generate an automatic command based on two or more movement commands each including information on a waypoint of an operation path of a robot, the automatic command including information on an arrival point of a transformation operation to an operation corresponding to the two or more movement commands; and a task generation unit configured to generate a task based on the generated automatic command and the two or more movement commands, wherein, in response to determining that the task is selected, an additional path to the arrival point is generated based on the surrounding environment information of the robot, and the robot operates based on the generated additional path and the two or more movement commands.
[0010] The control method according to another aspect of the present disclosure includes: sequentially calling a plurality of commands representing an operation path of a robot 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 during operating the robot based on the commands called from the plurality of commands, an additional path is generated based on the surrounding environment information of the robot.
[0011] Technical effects
[0012] According to the present disclosure, an efficient robot system for simplifying operation programming can be provided. Description of the drawings
[0013] Figure 1 It is a schematic diagram illustrating an example configuration of a robot system.
[0014] Figure 2 It is a schematic diagram illustrating an example configuration of a robot.
[0015] Figure 3 It is a block diagram illustrating an example functional configuration of a controller.
[0016] Figure 4 It is a diagram illustrating a plurality of example commands.
[0017] Figure 5 It is a block diagram illustrating an example configuration of a path planning unit.
[0018] Figure 6 It is a timing diagram illustrating the relationship between the operation period of a robot and the generation period of an additional path.
[0019] Figure 7 It is a schematic diagram illustrating an example storage content of a task storage unit.
[0020] Figure 8 It is a block diagram illustrating a modification example of a controller.
[0021] Figure 9 It is a block diagram illustrating an example configuration of a host controller.
[0022] Figure 10 is a block diagram illustrating an example hardware configuration of a controller and a host controller.
[0023] Figure 11 is a flowchart illustrating an example automatic command placement process.
[0024] Figure 12 is a flowchart illustrating an example task generation process.
[0025] Figure 13 is a flowchart illustrating an example program generation process.
[0026] Figure 14 is a flowchart illustrating an example system control process.
[0027] Figure 15 is a flowchart illustrating an example command invocation process.
[0028] Figure 16 is a flowchart illustrating an example path generation process.
[0029] Figure 17 is a flowchart illustrating an example environment change check process.
[0030] Figure 18 is a flowchart illustrating an example command-based control process of a robot. Detailed Implementation Manner
[0031] Hereinafter, the implementation manner 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 repeated descriptions will be omitted.
[0032] Robot System
[0033] Figure 1 The illustrated robot system 1 is a system for manufacturing workpieces and the like by a plurality of machines including one or more robots. What the robot system 1 causes the plurality of machines to execute is not limited to the manufacturing of workpieces and the like. As an example, the robot system 1 includes a conveyor 2, a plurality of robots 3, and a control system CS1.
[0034] The conveyor 2 conveys workpieces by power such as an electric motor. Specific examples of the conveyor 2 include a belt conveyor and a roller conveyor. Each of the plurality of robots 3 performs operations on the workpieces conveyed by the conveyor 2. Specific examples of operations on the workpieces include assembling a workpiece (e.g., a sub-component) to another workpiece (e.g., a base component) conveyed by the conveyor 2, fastening (e.g., bolt fastening) and joining (e.g., welding) components to the workpiece conveyed by the conveyor 2, and so on.
[0035] Figure 2This is a schematic diagram illustrating the configuration of the robot 3. Figure 2 The shown robot 3 is a six-axis vertical articulated robot having a base 11, a pivot part 12, a first arm 13, a second arm 14, a third arm 17, an end part 18, and actuators 41, 42, 43, 44, 45, 46. The base 11 is placed near the conveyor 2. The pivot part 12 is mounted on the base 11 to pivot about a vertical axis 21. The first arm 13 is connected to the pivot part 12 to swing about an axis 22 that intersects (e.g., is orthogonal to) the axis 21 and extends away from the axis 22. The intersection includes a case where there is a stranded relationship such as a so-called three-dimensional intersection. This also applies to the following description.
[0036] The second arm 14 is connected to the end part of the first arm 13 to swing about an axis 23 that is substantially parallel to the axis 22 and extends 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 end part of the first arm 13. The arm end 16 is connected to the end part of the arm base 15 to pivot about an axis 24 that intersects (e.g., is orthogonal to) the axis 23 and extends in a direction away from the arm base 15 along the axis 24.
[0037] The third arm 17 is connected to the end part of the arm end 16 so as to swing about an axis 25 that intersects (e.g., is orthogonal to) the axis 24. The end part 18 is connected to the end part of the third arm 17 to pivot about an axis 26 that intersects (e.g., is orthogonal to) the axis 25.
[0038] As described above, the robot 3 includes a joint 31 connecting the base 11 and the pivot part 12, a joint 32 connecting the pivot part 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 end part 18.
[0039] The actuators 41, 42, 43, 44, 45, 46 include, for example, electric motors and speed reducers, and drive the joints 31, 32, 33, 34, 35, 36 respectively. For example, the actuator 41 pivots the pivot part 12 about the axis 21. The actuator 42 swings the first arm 13 about the axis 22. The actuator 43 swings the second arm 14 about the axis 23. The actuator 44 pivots the arm end 16 about the axis 24. The actuator 45 swings the third arm 17 about the axis 25. The actuator 46 pivots the end part 18 about the axis 26.
[0040] The specific configuration of the robot 3 can be appropriately modified. For example, the robot 3 can be a seven-axis redundant robot with an additional axis joint based on a six-axis vertical multi-joint robot, or it can be a so-called SCARA (Selective Compliance Assembly Robot Arm) type multi-joint robot.
[0041] Return Figure 1 , the control system CS1 controls a plurality of machines including a plurality of robots 3. The control system CS1 is configured to perform: sequentially calling a plurality of commands representing an operation 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. In addition, the control system CS1 is configured to generate an additional path based on the surrounding environment information of the robot during the operation of the robot based on the commands called from the plurality of commands.
[0042] The operation path represents, for example, the movement path of a component (e.g., the end portion 18) of the robot 3. The operation path can represent the transition of the position and posture of the end portion 18. The operation path includes a plurality of sections. Each of the plurality of sections is located between two waypoints of the operation path. The plurality of sections includes a plurality of determined sections and one or more undetermined sections. Each of the plurality of determined sections is a section in which the movement path (e.g., the movement path of the end portion 18) between two waypoints is determined. Each of the one or more undetermined sections is a section in which the path between two waypoints is undetermined.
[0043] The control system CS1 generates an additional path for the undetermined section based on the surrounding environment information. The additional path represents the path between two waypoints in the undetermined section.
[0044] If only a plurality of local sections important for operation purposes such as producing workpieces are prepared in advance for the operation path and set as the plurality of determined sections, the control system CS1 compensates for the remaining undetermined sections, thereby facilitating the operation teaching of the robot 3.
[0045] In addition, with the control system CS1, after the robot 3 starts operating based on a plurality of commands, an additional path is generated based on the surrounding environment information, and the operation of the robot 3 is continued based on the generated additional path. Therefore, the robot 3 can flexibly execute operations corresponding to changes in the surrounding environment.
[0046] Hereinafter, an example configuration of the control system CS1 will be described in more detail. The control system CS1 has a plurality of controllers 100 and a host controller 200. Each of the plurality of controllers 100 controls each of the plurality of robots 3 based on commands from the host controller 200. The host controller 200 sends job commands to each of the plurality of controllers 100 so that the plurality of robots 3 cooperatively execute a series of jobs. Each of the plurality of controllers 100 controls the corresponding robot 3 based on the job commands.
[0047] In the control of the robot 3 based on the job commands, the controller 100 performs: sequentially calling a plurality of commands; generating an additional path for each of one or more undetermined intervals; and operating the robot 3 based on the called commands and the additional path. When operating the robot 3 based on one command, the controller 100 generates an additional path based on the surrounding environment information. Hereinafter, the configurations of the controller 100 and the host controller 200 will be described in more detail.
[0048] Controller
[0049] Figure 3 is a block diagram illustrating an example functional configuration of the controller 100. As Figure 3 shown, the controller 100 includes a call unit 111, a path planning unit 112, a path storage unit 113, and a control unit 114 as functional components (hereinafter referred to as "functional blocks").
[0050] The call unit 111 is configured to sequentially call a plurality of commands representing the operation paths of the robot 3. The plurality of commands may be pre-stored in the controller 100. For example, the controller 100 may pre-store an operation program in which a plurality of commands are arranged in their execution order. In this case, the call unit 111 sequentially extracts a plurality of commands from the operation program stored in the controller 100. Extracting means reading data.
[0051] The plurality of commands may be sent from the cloud to the controller 100. In this case, the call unit 111 sequentially extracts a plurality of commands from a reception buffer that temporarily stores data received from the cloud computer.
[0052] The path planning unit 112 is configured to generate an additional path for an undetermined interval. When the operation path includes a plurality of undetermined intervals, the path planning unit 112 generates an additional path for each of the plurality of undetermined intervals.
[0053] As an example, the plurality of commands include a movement command and an automatic command. The plurality of commands may include a plurality of movement commands and one or more automatic commands.
[0054] The movement command includes information about waypoints on the operation path. The waypoints define at least the position of the end portion 18. The waypoints may define the position and orientation of the end portion 18. The waypoints may define the angles of the joints 31, 32, 33, 34, 35, 36 instead of defining the position and posture of the end portion 18 itself. Determining the angles of the joints 31, 32, 33, 34, 35, 36 also determines the position and orientation of the end portion 18. The waypoints of the movement command may be teaching points taught by an operator through off-line teaching, on-line teaching, or the like.
[0055] The movement command may further include path specification information. The path specification information is information for specifying the path in the section up to the waypoint of the movement command and setting the section as a determined section. Hereinafter, the section up to the waypoint of the movement command is referred to as a "movement section", and the path of the movement section is referred to as a "movement section path". For example, the path information represents path specification conditions for uniquely determining the movement section path. Specific examples of the path specification conditions include movement section interpolation according to a straight line (linear interpolation) and movement section interpolation according to an S-shaped curve (S-shaped interpolation).
[0056] Each of one or more automatic commands includes information about waypoints that are arrival points of the operation path as undetermined sections. Each of one or more automatic commands may further include condition information representing generation conditions for generating an additional path. Specific examples of the generation conditions include path specification conditions of additional commands to be described later, movement speed conditions in the additional path, acceleration conditions in the additional path, deceleration conditions in the additional path, attitude conditions of the end portion 18 in the additional path, and conditions for allowing reuse of the generated additional path when the surrounding environment information does not change. Similar to the waypoints of the movement command, the waypoints of the automatic command may be teaching points taught by an operator through off-line teaching, on-line teaching, or the like.
[0057] Figure 4 is a diagram illustrating a plurality of commands. Figure 4 illustrates commands C1, C2, C3, C4, C5, C6, C7, C8, C9. Commands C1, C2, C3, C4, C6, C7, C8 are movement commands, and commands C5, C9 are automatic commands. In Figure 4 each command's waypoint is input within parentheses as an independent variable.
[0058] Among commands C1, C2, C3, C4, C6, C7, C8, one letter attached after "Move" corresponds to an example of path information. For example, "L" indicates that the position and posture of the end portion 18 at the starting point and the position and posture of the end portion 18 at the ending point are compensated according to a straight line. "S" indicates that the position and posture of the end portion 18 at the starting point and the position and posture of the end portion 18 at the ending point are compensated according to an S-shaped curve. "J" indicates that the angles of joints 31, 32, 33, 34, 35, 36 at the starting point and the angles of joints 31, 32, 33, 34, 35, 36 at the ending point are compensated according to a straight line.
[0059] In commands C5, C9, "Auto" following "Move" indicates that this command is an automatic command.
[0060] As Figure 4 shown, according to a plurality of commands including a movement command and an automatic command, an operation path is represented that includes a determined section (movement section) corresponding to the movement command and an undetermined section corresponding to the automatic command. Return reference Figure 3 , the path planning unit 112 generates an additional path for the undetermined section corresponding to the automatic command. For example, the path planning unit 112 generates an additional path from a via point (starting point) immediately before the via point (arrival point) of the automatic command to the arrival point. In the case where the automatic command is at the beginning of a plurality of commands, etc., the path planning unit 112 can use the current position of the end portion 18 of the robot 3 as the starting point to generate an additional path.
[0061] The control unit 114 is configured to operate the robot 3 based on the commands called by the calling unit 111 and the additional path. For example, the control unit 114 operates the robot 3 along a series of operation paths, the series of operation paths including a plurality of movement section paths respectively corresponding to a plurality of movement commands and one or more additional paths respectively corresponding to one or more automatic commands.
[0062] The control unit 114 does not need to operate the robot 3 to exactly conform to each of one or more additional paths and a plurality of movement section paths, but can operate the robot 3 to at least partially conform to each of one or more additional paths and a plurality of movement section paths. For example, the control unit 114 can operate the robot 3 at least partially along each of one or more additional paths and a plurality of movement section paths rather than through one or more via points of the operation path.
[0063] When the control unit 114 is operating the robot 3 based on a command, the path planning unit 112 generates an additional path based on the surrounding environment information of the robot 3. For example, when the control unit 114 is operating the robot 3 based on a movement command, the path planning unit 112 generates an additional path to the arrival point in the undetermined section corresponding to the automatic command based on the automatic command after the movement command and the surrounding environment information. For example, when the control unit 114 is operating the robot 3 along the movement section path corresponding to the movement command, the path planning unit 112 generates an additional path. When the control unit 114 is operating the robot 3 along the movement section path corresponding to the movement command that is two or more commands before the automatic command, the path planning unit 112 may generate an additional path.
[0064] When the control unit 114 is operating the robot 3 based on the previous automatic command, the path planning unit 112 may generate an additional path for the undetermined section corresponding to the subsequent automatic command based on the subsequent automatic command and the surrounding environment information. When the control unit 114 is operating the robot 3 based on the automatic command that is two or more commands before the subsequent automatic command, the path planning unit 112 may generate an additional path for the undetermined section corresponding to the subsequent automatic command based on the subsequent automatic command and the surrounding environment information.
[0065] The path planning unit 112 may generate two or more new movement commands that define the additional path based on the surrounding environment information. Hereinafter, the two or more new movement commands that define the additional path are referred to as "two or more additional commands". In this case, the path in which the two or more movement section paths corresponding to the two or more additional commands are connected together is the additional path.
[0066] For example, as Figure 5 shown, the path planning unit 112 includes a model database 151, an interference checking unit 152, and a path generation unit 153. The model database 151 stores the model information of the conveyors 2 and the multiple robots 3. The model database 151 may also store the model information of the peripheral objects of the multiple robots 3 and the conveyors 2. The model information includes numerical information specifying the structure and dimensions.
[0067] The interference checking unit 152 is configured to simulate the operations of the conveyors 2 and the robot 3 to verify that the robot 3 does not interfere with the peripheral objects existing in the surrounding environment and the robot itself. For example, the interference checking unit 152 simulates the operation of the robot 3 based on the additional path based on the model information stored in the model database 151 and the surrounding environment information stored in the environment information database 212, and confirms whether the robot 3 interferes with the peripheral objects. Interference means that the robot 3 overlaps with the peripheral objects in the simulation space. When interference occurs in the simulation space, a collision occurs between the robot 3 and the peripheral objects in the real space.
[0068] The interference checking unit 152 can calculate a series of control commands 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.
[0069] The path generation unit 153 is configured to generate an additional path. For example, the path generation unit 153 first interpolates the starting point and the arrival point with a straight line to temporarily generate an additional path, and causes the interference checking unit 152 to simulate the movement of the robot 3 based on the temporarily generated additional path. As a result of the simulation performed by the interference checking unit 152, if it is determined that there is interference between the robot 3 and the surrounding objects, the path generation unit 153 randomly generates waypoints that do not interfere with the surrounding objects and adds the waypoints between the starting point and the arrival point. Thereafter, the generation and addition of waypoints are repeated until there is no interference between the robot 3 and the surrounding objects due to the additional path connecting the starting point, the one or more generated waypoints, and the arrival point. Thereafter, the path generation unit 153 generates two or more additional commands having the one or more added waypoints and the arrival point as waypoints.
[0070] As described above, the interference checking unit 152 confirms that the robot 3 does not interfere with the surrounding objects in the additional path generated by the path planning unit 112. Therefore, when the robot 3 does not interfere with the surrounding objects, the control unit 114 operates the robot 3 based on the additional path generated by the path planning unit 112.
[0071] Return Figure 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 can cause a simulation device communicating with the controller 100 to generate an additional path. For example, the path planning unit 112 can request the simulation device to generate an additional path by specifying the starting point and the arrival point. Once the simulation device receives a request to generate an additional path, it generates an additional path based on the surrounding environment information. In this way, causing another device to generate an additional path based on the surrounding environment information is also included in generating an additional path based on the surrounding environment information.
[0072] 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 moves the robot 3 at least partially along each of the two or more movement interval paths corresponding to the two or more additional commands.
[0073] The path planning unit 112 can generate two or more additional commands based on an automatic command and additional commands based on the automatic command and surrounding environment information. For example, the path planning unit 112 generates an additional path from a waypoint (starting point) immediately before the waypoint (arrival point) of the automatic command called by the calling unit 111 to the arrival point.
[0074] The calling unit 111 can store the two or more called commands in the command storage unit 115. The calling unit 111 can store two or more commands in the command storage unit 115, and the commands include two or more additional commands. For example, when the calling unit 111 calls an automatic command, the calling unit 111 can call two or more additional commands stored in the path storage unit 113 by the path planning unit 112 from the path storage unit 113 based on the automatic command and store the additional commands in the command storage unit 115.
[0075] The control unit 114 can operate the robot 3 based on the two or more commands stored in the command storage unit 115. For example, the control unit 114 can 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 can generate a series of control commands for smoothing the operation path based on the two or more commands stored in the command storage unit. For example, the control unit 114 can 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 repeatedly executes at a predetermined control cycle: calculating the target angles of the joints 31, 32, 33, 34, 35, 36 by inverse kinematics calculation based on the series of speed patterns with respect to the position and posture of the end portion 18 and making the angles of the joints 31, 32, 33, 34, 35, 36 follow the target angles.
[0076] The path planning unit 112 can start generating an additional path at a timing when the generation of the additional path is completed before the operation corresponding to the movement command immediately before the automatic command is completed. For example, the path planning unit 112 can determine the start timing of generating the additional path based on the automatic command after the movement command so that the generation of the additional path is completed before the operation based on the movement command is completed. For example, the path planning unit 112 can 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 movement command immediately before the automatic command is completed. Hereinafter, the operation corresponding to the movement command immediately before the automatic command is referred to as the "preceding operation".
[0077] For example, the path planning unit 112 may start generating an additional path at a timing before a predetermined generation margin time starting from the completion prediction timing of the previous operation. The generation margin time is set to be equal to or longer than the time required to generate the additional path. The generation margin time may be set to be equal to or longer than the total time of the time required to generate the additional path and the time required to generate a control command.
[0078] Specific examples of the completion prediction timing of the previous operation include the timing of transitioning from the previous operation to an operation based on an automatic command, the deceleration start timing before transitioning from the previous operation to an operation based on an automatic command, and the like.
[0079] The calling unit 111 may modify the size of the command storage unit 115 to change the number of commands to be stored in the command storage unit 115, such that the expected time length of the operation corresponding to two or more commands stored in the command storage unit 115 is at least longer than (becomes longer than) the time length required for the path planning unit 112 to generate an additional path. For example, when the expected time is shorter than the time required to generate 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.
[0080] Figure 6 is a timing chart illustrating the relationship between the operation period of the robot and the generation period of the additional path, where the horizontal axis represents the passage of time. As Figure 6 shown, the path planning unit 112 starts generating an additional path at the start timing t2, which is the generation margin time T11 before the completion prediction timing t1 of the previous operation. The generation margin time T11 is greater than or equal to the generation time T13 of the additional path. Therefore, if the generation of the additional path starts at the generation margin time T11, the generation of the additional path can be completed before the completion prediction timing t1 of the completion of the previous operation.
[0081] In Figure 6 the expected time T12 of the motion corresponding to two or more commands stored in the command storage unit 115 is longer than the generation margin time T11. For this reason, there is a time margin after the automatic command is taken out and before the previous operation is completed, and the generation of the additional path can start at the start timing t2, which is the generation margin time T11 before the completion prediction timing t1.
[0082] If the expected time T12 is shorter than the generation margin time T11, the generation time of the additional path cannot be sufficiently ensured before the completion prediction timing t1 because the start timing t2 of the generation margin time T11 before the completion prediction timing t1 is already past at the timing of acquiring the automatic command. To avoid this, the calling unit 111 changes the number of commands to be stored in the command storage unit 115 so that the expected time T12 is longer than the generation margin time T11.
[0083] Return reference Figure 3 , when the automatic command includes condition information, the path planning unit 112 may further generate an additional path based on the condition information. For example, the path planning unit 112 may generate an additional path based on the surrounding environment information so that the additional path satisfies the generation conditions represented by the condition information.
[0084] In addition to the movement command and the automatic command, the plurality of commands may further include a shift command for shifting the via point. When the calling unit 111 calls the automatic command after the shift command, the path planning unit 112 generates an additional path to the shifted arrival point obtained by shifting the via point (arrival point) of the automatic command based on the shift command. The plurality of commands may further include a shift stop command for closing the via point shifted by the shift command. When the calling unit 111 calls the automatic command after the shift command and before the shift stop command, the path planning unit may generate an additional path to the shifted arrival point obtained by shifting the arrival point of the automatic command based on the shift command.
[0085] 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 including two or more movement commands. The task selection unit 123 is configured to select one task from the plurality of tasks stored in the task storage unit 121.
[0086] If the controller 100 includes the task storage unit 121 and the 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 the automatic command before calling the movement command included in one task selected by the task selection unit 123. For example, the calling unit 111 may call the automatic command before calling the first movement 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 the calling unit 111 calls two or more commands included in the previously selected task.
[0087] The task storage unit 121 can pre-store multiple tasks, or can obtain multiple tasks from a host device (e.g., a cloud computer, etc.) as needed and store the obtained multiple tasks. The task selection unit 123 can select one task from the multiple tasks stored in the task storage unit 121 in a predetermined order, or can autonomously select a task suitable for the surrounding environment based on the surrounding environment information of the robot 3.
[0088] If the task selection unit 123 selects one task from multiple 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 multiple tasks based on user input to the user interface, etc., and stores the execution order in the flow storage unit 122. The task selection unit 123 selects one task from multiple tasks according to the execution order stored in the flow storage unit 122.
[0089] At least one of the multiple tasks may include an automatic command before two or more movement commands. For example, each task may include an automatic command before two or more movement commands. Figure 7 is a diagram schematically illustrating the stored content of the task storage unit 121. In Figure 7 the task storage unit 121 stores multiple tasks 141. Each of the multiple tasks 141 includes two or more movement commands and an automatic command, and the automatic command is arranged before (e.g., at the beginning of) the two or more movement commands. In this way, when each task among the multiple tasks includes an automatic command, the call unit 111 calls the automatic command from one task selected by the task selection unit 123.
[0090] Return Figure 3 the controller 100 may further include an automatic command placement unit 124. When a first waypoint (the starting point of the one task) is defined by a movement command in one task, the automatic command placement unit 124 adds an automatic command including the starting point of the one task as the arrival point to the task. The automatic command placement unit 124 may replace the movement command that defines the first waypoint with an automatic command. Replacement is an example of addition. The automatic command placement unit 124 may insert the automatic command before the movement command that defines the first waypoint. Insertion is also an example of addition. For example, the automatic command placement unit 124 may insert the automatic command that defines the first waypoint before the movement command that defines the first waypoint. By using the automatic command placement unit 124, an existing task that does not include an automatic command can be converted into a task that includes an automatic command and utilized.
[0091] As Figure 8As shown, the controller 100 may further include a command generation unit 131 and a task generation unit 132. The command generation unit 131 is configured to generate an automatic command to be executed before two or more movement commands based on task information specifying two or more movement commands. For example, the command generation unit 131 may obtain task information based on user input to the user interface. For example, based on two or more movement commands, the command generation unit 131 specifies an arrival point (task start point) in a transformation operation to an operation corresponding to the two or more movement commands, and generates an automatic command including information on the specified arrival point.
[0092] The task generation unit 132 is configured to generate a task based on the generated automatic command and the task information. For example, the task generation unit 132 generates a task by inserting the automatic command generated by the command generation unit 131 before the two or more movement commands specified by the task information. By using the command generation unit 131 and the task generation unit 132, the task generation operation including the automatic command can be simplified. In addition, operation failures between tasks due to omission of automatic command arrangement can be prevented.
[0093] The calling unit 111 may be configured to, in response to determining that the called movement command defines a start point, interpret the movement command called from the two or more movement commands of the selected one task as an automatic command including the start point of the selected one task as an arrival point. For example, the calling unit 111 may read a movement command defining a first via point as an automatic command with the first via point as an arrival point. In this case, an additional path can be compensated before one task while keeping the existing task without an automatic command without rewriting.
[0094] Return Figure 3 Furthermore, the controller 100 may further include an environment change checking unit 125. The environment change checking unit 125 is configured to check whether there is a change in the surrounding environment information before and after the path planning unit 112 generates an additional path based on the surrounding environment information. For example, the environment change checking unit 125 may check whether there is a change in the surrounding environment information after an additional path has been generated with reference to the surrounding environment information. For example, the environment change checking unit 125 confirms whether there is a change in the surrounding environment information based on the surrounding environment information stored in the environment information database 212 (described later) of the host controller 200.
[0095] As an example, the environmental change checking unit 125 indicates the presence or absence of a change in the surrounding environment information through an environmental flag. For example, when the path planning unit 112 generates an additional path, the environmental change checking unit 125 "turns off" the environmental flag and obtains the surrounding environment information from the environmental information database 212. Hereinafter, the surrounding environment information obtained 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 checking unit 125 compares the updated surrounding environment information with the reference information, and changes the environmental flag from "off" to "on" when a difference between the updated surrounding environment information and the reference information is recognized.
[0096] The surrounding environment information may include items that do not affect the operation of the robot 3 along the additional path. The environmental change checking unit 125 may check for the presence of a change in the surrounding environment information only based on items in the surrounding environment information that are pre-specified as items that may affect the operation of the robot 3 along the additional path.
[0097] If there is no change in the surrounding environment information before and after the path planning unit 112 generates the additional path, the control unit 114 may operate the robot 3 based on the additional path. For example, the control unit 114 may check the environmental flag before operating the robot 3 based on the additional path and operate the robot 3 based on the additional path if the environmental flag is "off".
[0098] If there is a change in the surrounding environment information before and after the path planning unit 112 generates the additional path, the control unit 114 may stop the operation of the robot 3 based on the additional path. For example, the control unit 114 may check the environmental flag before the operation of the robot 3 based on the additional command, and if the environmental flag is "on", clear the content of the command storage unit 115. Therefore, since no speed pattern after the generated speed pattern is generated, the operation of the robot 3 may be temporarily stopped when the operation based on the generated speed pattern is completed.
[0099] If there are changes in the surrounding environment information before and after the additional path is generated by the path planning unit 112, the path planning unit 112 may regenerate the additional path based on the changed surrounding environment information. For example, when the control unit 114 identifies that the environmental flag is "on", the path planning unit 112 may regenerate the additional path based on the automatic command corresponding to the additional command and the changed surrounding environment information. For example, the path planning unit 112 stores two or more regenerated additional commands in the path storage unit 113. Thereafter, the calling unit 111 sequentially reads 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 emptied command storage unit 115, the operation of the robot 3 resumes.
[0100] An additional path may be generated after the robot 3 starts operating based on at least a plurality of commands. The path planning unit 112 may immediately generate an additional path at a timing when the waypoint immediately before the waypoint of the automatic command is determined.
[0101] In the case where an additional path is immediately generated at a timing when the waypoint immediately before the waypoint of the automatic command is determined, there is a possibility that 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 becomes longer. When the additional path is regenerated during the waiting time, the operation of the robot 3 may be continued through the regenerated additional path without stopping the operation of the robot 3. When there is a margin in the waiting time, the environment change check unit 125 may check whether the surrounding environment information changes whenever the additional path is regenerated, and the path planning unit 112 may regenerate the additional path whenever the surrounding environment information changes.
[0102] The controller 100 may further include a status sending unit 126. The status sending unit 126 sends status information indicating the status of the robot 3 to the host controller 200 based on the control result of the control unit 114 on the robot 3. The status information includes, for example, the current angles of the joints 31, 32, 33, 34, 35, 36.
[0103] Host controller
[0104] Figure 9 is a block diagram illustrating the configuration of the host controller 200. As Figure 9 shown, the host controller 200 includes an information collection unit 211, an environment information database 212, a system control unit 213, and a program storage unit 214 as functional blocks. The information collection unit 211 is configured to collect surrounding environment information and store it in the environment information database 212.
[0105] The information collection unit 211 is configured to update the surrounding environment information at least before and after the path planning unit 112 generates an additional path. For example, the information collection unit 211 repeatedly collects the surrounding environment information at a predetermined update period and accumulates the collection results in the environment information database 212 in time series. For example, the information collection unit 211 can collect the surrounding environment information based on the status information received from the status sending unit 126 of the controller 100, and can also collect the surrounding environment information based on an environment sensor 4 such as a camera (see Figure 1 ).
[0106] The program storage unit 214 stores a predetermined system program for causing a plurality of robots 3 to cooperate in performing a series of tasks. For example, the system program includes a series of job commands for each of the plurality of robots 3. The system program can include output conditions for at least one of the series of job commands.
[0107] The system control unit 213 is configured to output a job command to each of the plurality of robots 3, causing the plurality of robots 3 to cooperate in performing a series of jobs. For example, the system control unit 213 sequentially outputs a series of job commands to each of the plurality of robots 3 based on the system program. When output conditions are defined for any of the series of job commands, the system control unit 213 outputs a job command corresponding to the output conditions when the surrounding environment information in the environment information database 212 satisfies the output conditions.
[0108] Specific examples of the job command include a command to execute any one of the above-mentioned plurality of tasks, a command to execute the plurality of tasks in the execution order stored in the stream storage unit 122, and so on.
[0109] Figure 10 FIG. is a block diagram illustrating an example hardware configuration of the controller 100 and the host 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, a driver circuit 195, and a user interface 196. The storage 193 is a non-volatile storage medium and stores a program for causing the controller 100 to execute a control method, the control method including: sequentially calling a plurality of commands; generating an additional path; and operating the robot 3 based on the called commands and the additional path, the control method generating an additional path based on the surrounding environment information when the robot 3 operates based on one command. For example, the storage 193 stores a program for configuring the above-mentioned functional blocks in the controller 100. The storage 193 can be an internal storage medium such as a flash memory or a hard disk, or can be a portable storage medium such as a USB flash drive or an optical disc.
[0110] The memory 192 temporarily stores the program loaded from the storage 193. Specific examples of the memory 192 include random access memory. Each of the above function blocks is configured by one or more processors 191 executing the program loaded into the memory 192. One or more processors 191 appropriately store the calculation results in the memory 192.
[0111] The communication port 194 is a communication port for synchronous communication for control and communicates with the host controller 200 based on a request from one or more processors 191. The driver circuit 195 supplies drive power to the actuators 41, 42, 43, 44, 45, 46 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 display and an organic electroluminescence (EL) display. Specific examples of the input device include a keyboard, a mouse, and a keypad. The input device may be integrated with the display device into a so-called touch panel.
[0112] The host controller 200 includes a circuit 290. The circuit 290 includes 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 function blocks in the host controller 200. The storage 293 may be an internal storage medium such as a flash memory or a hard disk, or may be a portable storage medium such as a USB flash drive or an optical disc.
[0113] The memory 292 temporarily stores the program loaded from the storage 293. Specific examples of the memory 292 include random access memory. Each of the above function blocks is configured by one or more processors 291 executing the program loaded into the memory 292. One or more processors 291 appropriately store the calculation results in the memory 292.
[0114] The communication port 296 is a communication port for synchronous communication for control 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 or the like based on a request from one or more processors 291. The communication port 294 is a communication port for communicating with a system different from the synchronous communication for control.
[0115] The above hardware configuration is only an example and can be changed appropriately. For example, the control system CS1 does not necessarily have to be divided into the controller 100 and the host controller 200. For example, the controller 100 can be incorporated into the host controller 200. In addition to the controller 100 and the host controller 200, the control system CS1 can also include the above-described analog device. In this case, the controller 100 can be configured such that the analog device generates an additional path based on the surrounding environment information.
[0116] Control process
[0117] Next, as an example of the control method, the control process executed by the control system CS1 will be specifically described. This process 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 generating an additional path based on the commands and the surrounding environment information when operating the robot 3 based on one command. The control process of the control system CS1 can include a task generation process, an automatic command placement process, and a program generation process executed by the controller 100, a system control process executed by the host controller 200, and a command call process, an environment change check process, and a robot control process executed by the controller 100. Each process will be described in detail below.
[0118] Automatic command placement process
[0119] As Figure 11 shown, the controller 100 executes steps S01, S02, and S03. In step S01, the automatic command placement unit 124 selects a task that does not include an automatic command from among the plurality of tasks stored in the task storage unit 121. In step S02, if a first via point is defined by a movement command of a task, the automatic command placement unit 124 replaces the movement command that defines the first via point with an automatic command. The automatic command placement unit 124 can insert the automatic command before the movement command that defines the first via point.
[0120] In step S03, the automatic command placement unit 124 checks whether automatic commands have been placed for all tasks that do not include automatic commands. If it is determined in step S03 that there are still tasks that do not include automatic commands, the controller 100 returns the process to step S01. If it is determined in step S03 that automatic commands have been placed for all tasks that do not include automatic commands, the controller 100 completes the process.
[0121] Task generation process
[0122] As Figure 12As shown, the controller 100 executes steps S11, S12, S13, and S14. In step S11, the command generation unit 131 obtains task information specifying two or more movement commands. The command generation unit 131 may obtain the task information from the user interface 196.
[0123] In step S12, the command generation unit 131 generates an automatic command to be executed before the two or more movement commands based on the obtained task information. For example, based on the two or more movement commands, the command generation unit 131 generates an automatic command including information on the arrival point (the starting point of the task) in the transformation operation to the operations corresponding to the two or more movement commands.
[0124] In step S13, the task generation unit 132 generates a task based on the generated automatic command and the task information. For example, the task generation unit 132 generates a task by inserting the automatic command generated by the command generation unit 131 before the two or more movement 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 process.
[0125] Program generation process
[0126] As Figure 13 shown, the controller 100 executes steps S21 and S22. In step S21, the flow information acquisition unit 127 acquires the execution order of multiple tasks. In step S22, the flow information acquisition unit 127 stores the execution order in the flow storage unit 122. This completes the generation of the operation program of the robot 3.
[0127] System control process
[0128] As Figure 14 shown, the host controller 200 executes steps S31, S32, and S33. In step S31, the system control unit 213 specifies the job command to be output to the controller 100 next based on the system program in the program storage unit 214. Hereinafter, the specified job command is referred to as the job command to be output. In step S32, the information collection unit 211 collects the surrounding environment information, adds time information to the set of the collected surrounding environment information, and stores the surrounding environment information in the environment information database 212. In step S33, the system control unit 213 checks whether output conditions are given to the job command to be output.
[0129] If it is determined in step S33 that output conditions are assigned to the job 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 conditions. If it is determined in step S34 that the surrounding environment information does not satisfy the output conditions, the host controller 200 executes step S35. In step S35, the information collection unit 211 waits for the update cycle to pass. The host controller 200 then returns to step S32. Thereafter, the surrounding environment information is repeatedly collected in each update cycle until the surrounding environment information satisfies the output conditions.
[0130] If it is determined in step S34 that the surrounding environment information satisfies the output conditions, the host controller 200 executes steps S36 and S37. In step S33, if it is determined that no output conditions are assigned to the job command to be output, the host controller 200 executes steps S36 and S37. In step S36, the system control unit 213 sends the job command to be output to the controller 100. In step S37, the system control unit 213 waits for the update cycle to pass. The controller 100 then returns to step S31. The host controller 200 repeats the above process.
[0131] Command calling process
[0132] As Figure 15 shown, the controller 100 first executes steps S41, S42, and S43. In step S41, the task selection unit 123 selects one task from among a plurality of tasks stored in the task storage unit 121. For example, the task selection unit 123 selects one task from among the plurality of tasks in the execution order stored in the flow storage unit 122. In step S42, the call unit 111 calls a command from one task. In step S43, the call unit 111 checks whether the one command is a movement command.
[0133] If it is determined in step S43 that the one command is not a movement command, the controller 100 executes step S44. In step S44, the call unit 111 checks whether the one command is an automatic command. If it is determined in step S44 that the one command is not an automatic command, the controller 100 returns the process to step S42.
[0134] If it is determined in step S44 that the one command is an automatic command, the controller 100 executes steps S45, S46, and S47. In step S45, the path planning unit 112 waits for the start timing of generating an additional path. For example, the path planning unit 112 waits for the timing before a predetermined generation margin time from the completion prediction timing of the previous operation. In step S46, the path planning unit 112 generates an additional path from the waypoint (starting point) immediately before the arrival point of the automatic command to the arrival point of the automatic command, and stores the generated additional path in the path storage unit 113. In step S47, the environment change check unit 125 sets the environment flag to "off" (or clears the environment flag).
[0135] Next, the controller 100 executes step S53. In step S53, the path planning unit 112 changes the command call destination of the call unit 111 from the task storage unit 121 to the path storage unit 113. The controller 100 then returns to step S42. In step S42, a command is called from the path storage unit 113.
[0136] If it is determined in step S43 that a command is a movement command, the controller 100 executes steps S54 and S55. In step S54, the call unit 111 stores the called command in the command storage unit 115. In step S55, the call unit 111 checks whether the called command is an additional command.
[0137] If it is determined in step S55 that the called command is an additional command, the controller 100 executes step S56. In step S56, the call unit 111 checks whether all the additional commands stored in the path storage unit 113 have been called.
[0138] If it is determined in step S56 that all the additional commands have been called, the controller 100 executes step S57. In step S57, the call unit 111 changes the command call destination from the path storage unit 113 to the task storage unit 121.
[0139] Next, the controller 100 executes step S58. If it is determined in step S56 that there are still additional commands that have not been called, the controller 100 executes step S57 without executing step S58. If it is determined in step S55 that the called command is not an additional command, the controller 100 executes step S56 without executing steps S57 and S58. In step S58, the call unit 111 checks whether all the commands included in a task have been called.
[0140] If it is determined in step S58 that there are still commands in the one task that have not been called, the controller 100 returns the process to step S42. As a result, commands are continuously called from the one task. If it is determined in step S58 that all the commands included in the one task have been called, the controller 100 returns the process to step S41. Thus, the next task is selected. The controller 100 repeatedly executes the above process. In Figure 15 the case where a plurality of commands that are neither movement commands nor automatic commands (e.g., the above-described shift command) are omitted. When a plurality of commands include commands that are neither movement commands nor automatic commands, processing for the commands is appropriately added.
[0141] Figure 16 is a flowchart illustrating the process of generating an additional path in step S46. As Figure 16 shown, the controller 100 first executes steps S92 and S93. In step S92, the path planning unit 112 temporarily generates an additional path by linearly interpolating the starting point and the arrival point. In step S93, the interference checking unit 152 simulates the movement of the robot 3 based on the additional path and checks whether there is interference between the robot 3 and surrounding objects.
[0142] If it is determined in step S93 that there is interference, the controller 100 executes step S94. In step S94, the path planning unit 112 randomly generates a via point that does not interfere with surrounding objects, inserts the via point between the starting point and the arrival point, and corrects the additional path. The controller 100 then returns to step S93. Thereafter, the generation and addition of via points are repeated until there is no interference between the robot 3 and surrounding objects due to the additional path.
[0143] If it is determined in step S93 that there is no interference, the controller 100 executes step S95. In step S95, the path planning unit 112 generates a plurality of additional commands having the added one or more via points and the end point as via points. In this way, the path generation process is completed.
[0144] Environmental change checking process
[0145] As Figure 17 shown, the controller 100 executes steps S61 and S62. In step S61, the environmental change checking unit 125 obtains the surrounding environment information from the environmental information database 212 as reference information. In step S62, the environmental change checking unit 125 checks whether the environmental flag has been cleared during the above command calling process.
[0146] 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 the update period of the environment flag has passed. If it is determined in step S63 that the update period has not passed, 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 period has passed.
[0147] If it is determined in step S63 that the update period has passed, the controller 100 executes steps S64 and S65. In step S64, the environment change check unit 125 obtains the surrounding environment information from the environment information database 212. In step S65, the environment change check unit 125 compares the surrounding environment information obtained in step S64 with the reference information and confirms whether there is a change in the surrounding environment information.
[0148] 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". The controller 100 then returns to step S62.
[0149] If it is determined in step S62 that the environment flag has been cleared, the controller 100 executes step S67. In step S67, the environment change check unit 125 obtains the surrounding environment information from the environment information database 212 and updates the reference information with the obtained surrounding environment information. The controller 100 then returns to step S62. Thereafter, while updating the reference information in response to the cleared environment flag, the presence or absence of changes in the surrounding environment information is repeatedly checked for each update period.
[0150] Robot control process
[0151] As Figure 18 shown, the controller 100 first executes steps S71 and S72. In step S71, the control unit 114 reads a command from the command storage unit 115. In step S72, the control unit 114 checks whether the one command is an additional command.
[0152] If it is determined in step S72 that the one 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., speed mode) based on two or more commands including the one command and one or more previously read commands. In step S75, the control unit 114 starts controlling the robot 3 based on the series of control commands generated in step S74. The controller 100 then returns to step S71.
[0153] If it is determined in step S72 that the one command is an additional 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.
[0154] If it is determined in step S73 that the environment flag is "on", the controller 100 executes steps S81, S82, and S83. In step S81, the control unit 114 clears (erases) the content of the command storage unit 115. In step S82, the path planning unit 112 waits for the timing of an automatic command corresponding to the additional command based on the surrounding environment information. In step S82, the path planning unit 112 regenerates an additional path from the waypoint (starting point) immediately before the arrival point of the automatic command to the arrival point of the automatic command and stores the generated additional path in the path storage unit 113. In step S83, the environment change check unit 125 sets (clears) the environment flag to "off".
[0155] Next, the controller 100 executes step S86. In step S86, the path planning unit 112 changes the call destination of the command of the call unit 111 from the task storage unit 121 to the path storage unit 113. As a result, two or more regenerated additional commands are sequentially called by the call unit 111 during the above command call process and stored in the command storage unit 115. The controller 100 then returns to step S71. The controller 100 repeats the above process.
[0156] Summary
[0157] The robot system 1 includes: a call unit 111 configured to sequentially call a plurality of commands representing an operation path of the robot 3 including an undetermined section; a path planning unit 112 configured to generate an additional path for the undetermined section; and a control unit 114 configured to operate the robot 3 based on the commands called by the call unit 111 and the additional path. The path planning unit 112 is configured to generate 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.
[0158] In the robot system 1, after the robot 3 starts operating based on a plurality of commands, an additional path is generated based on the surrounding environment information, and the operation of the robot 3 is continued based on the generated additional path. Therefore, the robot 3 can flexibly execute operations corresponding to changes in the surrounding environment, changes in the operation content, changes in the operation process, and the like. Hereinafter, generating an additional path after the robot 3 starts operating based on a plurality of commands is referred to as "online path generation".
[0159] The plurality of commands may include a movement command having information on waypoints of an operation path and an automatic command including information on waypoints that are arrival points of an operation path as an undetermined section. When the control unit 114 is operating the robot 3 based on the movement command, the path planning unit 112 may generate an additional path to the arrival point in the undetermined section based on the automatic command after the movement command and the surrounding environment information. The section in which the robot 3 operates according to a predetermined operation path and the section in which the robot 3 operates according to the additional path generated by the path planning unit 112 can be easily specified. The operation program of the existing robot 3 can be described by listing a plurality of commands including the movement command. In a configuration where an additional path is generated based on the automatic command and the surrounding environment information, an operation program including online path generation can be easily generated by using the existing operation program.
[0160] The robot system 1 may further include: a task storage unit 121 configured to store a plurality of tasks each including two or more movement commands; and a task selection unit 123 configured to select one task from the plurality of tasks stored in the task storage unit 121. The call unit 111 may call an automatic command before calling the movement commands included in one task selected by the task selection unit 123. The robot 3 can be easily operated based on a plurality of individually generated tasks.
[0161] At least one of the tasks may include an automatic command before two or more movement commands. The call unit 111 may call an automatic command from one task selected by the task selection unit 123. Based on a plurality of individually generated tasks, the robot 3 can be operated more easily.
[0162] The robot system 1 may include: a command generation unit 131 configured to generate an automatic command to be executed before two or more movement commands based on task information specifying two or more movement commands; and a task generation unit 132 configured to generate a task based on the generated automatic command and the task information. The operation of generating a task including an automatic command can be simplified. In addition, operation failures between tasks due to omission of automatic command placement can be prevented.
[0163] The robot system 1 may further include an automatic command placement unit 124 configured to replace a movement command defining a first via point with an automatic command or insert the automatic command before the movement command defining the first via point when the first via point is defined by a movement command in a task. An existing task without an automatic command can be easily converted into a task including an automatic command.
[0164] When a first via point is defined by a movement command in a task, the calling unit 111 may read the movement command defining the first via point as an automatic command having the first via point as an arrival point. Online path generation can be used while preserving an existing task not including an automatic command without rewriting.
[0165] The path planning unit 112 may generate an additional path from a via point immediately before the arrival point to the arrival point. By setting the immediately preceding via point as a starting point, it is not necessary to determine the starting point by an automatic command, and thus the automatic command can be simplified.
[0166] The plurality of commands may include a shift command for shifting a via point. When the calling unit 111 calls an automatic command after the shift command, the path planning unit 112 may generate an additional path to a shifted arrival point obtained by shifting the automatic command by the via point based on the shift command. By making the shift command also applicable to the automatic command, operation programming can be further simplified.
[0167] The path planning unit 112 may start generating an additional path at a timing when the additional path is completed before an operation corresponding to a movement command immediately before the automatic command is completed. In this case, the state in which the robot 3 stops to wait for the generation of the additional path can be reduced and the robot 3 can be operated more smoothly.
[0168] The path planning unit 112 may generate two or more new movement commands defining an additional path based on surrounding environment information. The operation for generating an additional path can be simplified.
[0169] After the calling unit 111 calls an automatic command, the path planning unit 112 can generate two or more new movement commands that define an additional path based on the automatic command and the surrounding environment information. The calling unit 111 can store the two or more commands in the command storage unit 115, and the two or more commands include the two or more new movement commands. The control unit 114 can operate the robot 3 based on the two or more commands stored in the command storage unit 115. By operating the robot 3 based on the two or more commands stored in the command storage unit 115, the state in which the robot 3 stops to wait for the next command can be reduced and the robot 3 can be operated more smoothly. As described above, by combining the result of online path generation with the mechanism of operating the robot 3 based on the two or more commands stored in the command storage unit 115, the operation intervals based on the path information of the movement commands and the operation intervals based on the additional path can be smoothly connected, and the robot 3 can be operated more smoothly.
[0170] The control unit 114 can 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. The robot 3 can be operated more smoothly.
[0171] The calling unit 111 can change the number of commands to be stored in the command storage unit 115 such that the expected time of the operation corresponding to the two or more commands stored in the command storage unit 115 is at least longer than the time required for the path planning unit 112 to generate an additional path. The state in which the robot 3 stops to wait for the generation of the additional path can be further reduced, and the robot 3 can be operated more smoothly.
[0172] The automatic command can include condition information indicating generation conditions when generating an additional path based on the surrounding environment information. The path planning unit 112 can further generate an additional path based on the condition information. A more appropriate additional path can be generated by setting the condition information.
[0173] The robot system 1 may further include an interference checking unit 152 that simulates the operation of the robot 3 based on the additional path generated by the path planning unit 112 to confirm that the robot 3 does not interfere with surrounding objects existing in the surrounding environment. If the robot 3 does not interfere with the surrounding objects, the control unit 114 can operate the robot 3 based on the additional path generated by the path planning unit 112. The reliability of the operation of the robot 3 including online path generation can be improved.
[0174] The robot system 1 may further include: an information collection unit 211 configured to update surrounding environment information at least before and after the path planning unit 112 generates an additional path; and an environment change check unit 125 configured to check whether there is a change in the surrounding environment information before and after the path planning unit 112 generates an additional path based on the surrounding environment information. The reliability of the operation of the robot 3 including online path generation can be further improved.
[0175] If there is no change in the surrounding environment information before and after the path planning unit 112 generates an additional path, the control unit 114 may operate the robot 3 based on the additional path. The reliability of the operation of the robot 3 including online path generation can be further improved.
[0176] If there is a change in the surrounding environment information before and after generating the additional path, the path planning unit 112 may regenerate the additional path based on the surrounding environment information after the change. The reliability of the operation of the robot 3 including online path generation can be further improved.
[0177] The above-described embodiment includes a robot system, which includes: a calling unit 111 configured to sequentially call a plurality of commands including a plurality of movement commands and automatic commands, the plurality of movement commands including information on waypoints of an operation path including an undetermined section of the robot 3, and the automatic command including information on waypoints of the operation path serving as the arrival point of the undetermined section; a path planning unit 112 configured to generate an additional path to the arrival point in the undetermined section based on the automatic command and the surrounding environment information of the robot 3; and a control unit 114 configured to operate the robot 3 based on the commands called by the calling unit 111 and the additional path.
[0178] In addition, the above-described embodiment includes a task generation device, which includes: a command generation unit 131 configured to generate task information including two or more movement commands based on information on waypoints specifying an operation path of the robot 3 respectively, and generate an automatic command including information on the arrival point in the transformation operation to the operations corresponding to the two or more movement commands; and a task generation unit 132 configured to generate a task based on the generated automatic command and task information. When a task is selected, an additional path to the arrival point of the task is generated based on the surrounding environment information of the arrival point of the robot 3, and the robot 3 operates based on the generated additional path and the two or more movement commands.
[0179] Although the embodiments have been described above, the present invention is not necessarily limited to the above-described embodiments, and various modifications can be made without departing from the scope of the present invention.
Claims
1. A robot system, the robot system comprising: A calling unit that sequentially calls a plurality of commands representing an operation path of the robot including a determined section and an undetermined section, wherein the determined section is pre-determined by an operator; 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, so that the robot moves along an operation path including the additional path, wherein the plurality of commands includes: A movement command that includes information on waypoints of the operation path; and An automatic command that includes information on a waypoint that is an arrival point of the undetermined section of the operation path, and wherein the path planning unit generates the additional path to the arrival point in the undetermined section based on the automatic command after the movement command and the surrounding environment information of the robot during the period when the control unit operates the robot based on the movement command.
2. The robot system according to claim 1, the robot system further comprising: A task storage unit that stores a plurality of tasks each including two or more movement commands; and A task selection unit that selects one task from the plurality of tasks stored in the task storage unit, wherein the calling unit calls the automatic command before calling the movement commands included in the one task selected by the task selection unit.
3. The robot system according to claim 2, wherein, At least one of the plurality of tasks includes the automatic command before the two or more movement commands, and wherein the calling unit calls the automatic command from the one task selected by the task selection unit.
4. The robot system according to claim 3, the robot system further comprising: A command generation unit that generates the automatic command to be executed before the two or more movement commands based on task information specifying the two or more movement commands; and A task generation unit that generates a task based on the generated automatic command and the task information.
5. The robot system according to claim 3, the robot system further comprising an automatic command placement unit that, when a movement command in the one task defines a first waypoint, replaces the movement command defining the first waypoint with the automatic command or inserts the automatic command before the movement command defining the first waypoint.
6. The robot system according to claim 2, wherein, The calling unit converts the movement command defining the first waypoint into the automatic command having the first waypoint as the arrival point when the movement command in the one task defines the first waypoint.
7. The robot system according to any one of claims 1 to 6, wherein, The path planning unit generates the additional path from the waypoint immediately before the arrival point to the arrival point.
8. The robot system according to claim 7, wherein, The plurality of commands includes a shift command for shifting the waypoint, and Among them, when the call unit calls the automatic command after the shift command, the path planning unit generates the additional path to the shifted arrival point obtained by shifting the arrival point of the automatic command based on the shift command.
9. The robot system according to any one of claims 1 to 6, wherein, The path planning unit starts generating the additional path at a timing when the generation of the additional path is completed before the operation corresponding to the movement command immediately before the automatic command is completed.
10. The robot system according to any one of claims 1 to 6, wherein, The path planning unit generates two or more new movement commands that define the additional path based on the surrounding environment information.
11. The robot system according to claim 10, wherein, The path planning unit generates the two or more new movement commands that define the additional path based on the automatic command and the surrounding environment information after the call unit calls the automatic command. Among them, the call unit stores two or more commands including the two or more new movement commands in the command storage unit, and Among them, the control unit operates the robot based on the two or more commands stored in the command storage unit.
12. The robot system according to claim 11, wherein, The control unit: Generates a series of control commands for the robot based on the two or more commands stored in the command storage unit; And Operates the robot based on the series of control commands.
13. The robot system according to claim 11, wherein, The call unit modifies the number of commands to be stored in the command storage unit so that the expected time of the operation corresponding to the two or more commands stored in the command storage unit exceeds at least the time required for the path planning unit to generate the additional path.
14. The robot system according to any one of claims 1 to 6, wherein, The automatic command includes condition information indicating the generation conditions when generating the additional path based on the surrounding environment information, and Among them, the path planning unit further generates the additional path based on the condition information.
15. The robot system according to any one of claims 1 to 6, further comprising an interference checking unit that simulates the operation of the robot based on the additional path generated by the path planning unit and confirms whether the robot interferes with surrounding objects existing in the surrounding environment, and Among them, The control unit operates the robot based on the additional path generated by the path planning unit when the robot does not interfere with the surrounding objects.
16. The robot system according to any one of claims 1 to 6, further comprising: An information collection unit that updates the surrounding environment information at least before and after the path planning unit generates the additional path; And An environment change checking unit that confirms whether there is a change in the surrounding environment information before and after the path planning unit generates the additional path based on the surrounding environment information.
17. The robot system according to claim 16, wherein, The control unit operates the robot based on the additional path when there is no change in the surrounding environment information before and after the path planning unit generates the additional path.
18. The robot system according to claim 16, wherein, When there are changes in the surrounding environment information before and after generating the additional path, the path planning unit regenerates the additional path based on the changed surrounding environment information.
19. A control method, the control method comprising the following steps: Sequentially calling a plurality of commands representing an operation path of a robot including a determined section and an undetermined section, wherein the determined section is pre-determined by an operator; Generating an additional path for the undetermined section; and Operating the robot based on the called commands and the additional path so that the robot moves along the operation path including the additional path, wherein the plurality of commands include: A movement command including information on waypoints of the operation path; and An automatic command including information on a waypoint that is an arrival point of the undetermined section of the operation path, and wherein, during the operation of the robot based on the movement command, the additional path to the arrival point in the undetermined section is generated according to the automatic command after the movement command and the surrounding environment information.
Citation Information
Patent Citations
Method and device for planning operation route of robot
JP2000020117A
Real-Time Determination of Object Metrics for Trajectory Planning
US20160016311A1
Methods, systems, and apparatuses, for path planning and execution in a robotic system
US20210008720A1
Control system, robot system and control method
US20220001537A1