Robot system, recovery program generation method and storage device
By introducing the design of the control part, interruption part and recovery program generation part into the robot system, the problem of rapid recovery of the robot from the abnormal state of peripheral equipment is solved, and the continuity of actions and the improvement of production efficiency are achieved.
Patent Information
- Application Number
- CN201980096428.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-05-17
- Publication Date
- 2025-01-21
- Estimated Expiration
- 2039-05-17
AI Technical Summary
The prior art is difficult to quickly restore abnormal states of robots from peripheral devices, resulting in interruption of operations and reduced productivity.
A robot system is designed, including the control department, the interruption department and the recovery program generation department. When the surrounding equipment is abnormal, the interrupted department will interrupt the linkage movement of the robot and the surrounding equipment, and the recovery program generates the genetic information -based information generating recovery program. The control department will restore the robot to the state that can be continued based on the recovery program.
It realizes the rapid recovery of the robot system when abnormal conditions of peripheral equipment occur, avoids movement interruption, and improves production efficiency.
Smart Images

Figure CN113874177B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a robot system, a recovery program generating device, a control assisting device, a control device, a program, a recovery program generating method, and a recovery program outputting method. Background Art
[0002] Patent Document 1 discloses a processing machine system including a processing machine and a robot, and causing the robot to replace a workpiece for the processing machine.
[0003] Prior art literature
[0004] Patent Literature
[0005] Patent document 1: Japanese Patent Application Publication No. 2016-168661. Summary of the invention
[0006] Problems to be solved by the invention
[0007] The present disclosure provides a robot system that is effective in rapidly recovering the robot from an abnormal state in peripheral devices.
[0008] Means used to solve problems
[0009] A robot system involved in one aspect of the present disclosure includes: a robot; a peripheral device configured around the robot; a control unit, which at least causes the robot to move based on a program; an interruption unit, which interrupts a series of multiple actions performed by the robot in conjunction with the peripheral device based on an action program when an abnormal state occurs in the peripheral device; and a recovery program generation unit, which generates a recovery program based on at least robot state information of the robot at a time point when the action is interrupted due to the occurrence of the abnormal state, and the control unit causes the robot to move relative to the peripheral device based on the recovery program so that the interrupted action based on the action program can be continued.
[0010] Another aspect of the present disclosure relates to a recovery program generating device that includes: a status information acquiring unit that, when an abnormal state occurs in a peripheral device configured around the robot, at least acquires robot status information of the robot that has interrupted a series of multiple actions based on an action program and linked with the peripheral device; and a recovery program generating unit that generates a recovery program for the robot based at least on the robot status information, the recovery program being used to enable the interrupted action based on the action program to be continued.
[0011] Another aspect of the present disclosure relates to a control assist device that includes: a status information acquisition unit that, when an abnormal state occurs in a peripheral device configured around the robot, acquires at least abnormal state information and robot status information of the robot that interrupts a series of multiple actions based on an action program that are linked to the peripheral device, wherein the abnormal state information indicates the abnormal state of the peripheral device; a category determination unit that determines the category of the abnormal state based at least on the abnormal state information; and a recovery program output unit that outputs a recovery program of the robot based at least on the category of the abnormal state and the robot status information, wherein the recovery program is used to enable the interrupted action based on the action program to be continued.
[0012] Another aspect of the present disclosure relates to a control device that includes: a control unit that causes at least a robot to move based on a program; an interruption unit that interrupts a series of multiple actions performed by the robot in conjunction with the peripheral devices based on an action program when an abnormal state occurs in a peripheral device configured around the robot; and a recovery program acquisition unit that acquires a recovery program, wherein the recovery program is a program based on at least robot status information, and the control unit causes the robot to move relative to the peripheral devices based on the recovery program so that the interrupted action based on the action program can be continued.
[0013] A program involved in another aspect of the present invention enables the device to execute: when an abnormal state occurs in a peripheral device configured around the robot, at least obtain robot state information of the robot that interrupts a series of multiple actions based on an action program that are linked with the peripheral device; and generate a recovery program of the robot based on at least the robot state information, the recovery program being used to enable the interrupted action based on the action program to be continued.
[0014] Another aspect of the present disclosure relates to a program that enables the device to execute: when an abnormal state occurs in a peripheral device configured around the robot, at least abnormal state information and robot state information of the robot that interrupts a series of multiple actions based on an action program that are linked to the peripheral device are obtained, the abnormal state information indicating the abnormal state of the peripheral device; a category of the abnormal state is determined at least based on the abnormal state information; and a recovery program of the robot is output based at least on the category of the abnormal state and the robot state information, the recovery program being used to enable the interrupted action based on the action program to be continued.
[0015] Another aspect of the present invention involves a method for generating a recovery program, including: when an abnormal state occurs in a peripheral device configured around the robot, at least obtaining robot state information of the robot that interrupts a series of multiple actions based on an action program and linked with the peripheral device; and generating a recovery program of the robot based on at least the robot state information, the recovery program being used to enable the interrupted action based on the action program to be continued.
[0016] Another aspect of the present disclosure relates to a method for outputting a recovery program, including: when an abnormal state occurs in a peripheral device configured around a robot, at least obtaining abnormal state information and robot state information of the robot that interrupts a series of multiple actions based on an action program and linked with the peripheral device, the abnormal state information indicating the abnormal state of the peripheral device; determining a category of the abnormal state at least based on the abnormal state information; and outputting a recovery program of the robot based at least on the category of the abnormal state and the robot state information, the recovery program being used to enable the interrupted action based on the action program to be continued.
[0017] Effects of the Invention
[0018] According to the present disclosure, it is possible to provide a robot system that is effective in quickly recovering the robot from an abnormal state in peripheral devices. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] Figure 1 It is a schematic diagram showing a general structure of a robot system.
[0020] Figure 2 is a block diagram illustrating the functional structure of the controller.
[0021] Figure 3 This is a block diagram illustrating the functional structure of the control support device.
[0022] Figure 4 This is a block diagram illustrating the functional structure of the simulator.
[0023] Figure 5 This is a timing chart illustrating an operation procedure.
[0024] Figure 6 This is a sequence diagram illustrating an operation program in which a recovery program is inserted.
[0025] Figure 7 It is a block diagram illustrating the hardware configuration of the control system.
[0026] Figure 8 is a flowchart illustrating a control procedure.
[0027] Fig. 9 is a flowchart illustrating the interrupt processing procedure.
[0028] Fig.10 is a flowchart illustrating the recovery process steps.
[0029] Fig.11 is a flowchart illustrating the steps of assisting in the generation of a recovery program.
[0030] Fig.12 is a flowchart illustrating the steps of generating a recovery program.
[0031] Fig.13 This is a flowchart illustrating the setting procedure of the recovery procedure. DETAILED DESCRIPTION
[0032] 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 repeated descriptions are omitted.
[0033] [Robotic system]
[0034] The robot system involved in this embodiment is a system that performs a predetermined operation (such as processing, assembly, etc.) on a workpiece by means of a robot and at least one peripheral device arranged around the robot. Specific examples of the cooperation between the robot and the peripheral device include a method of performing a predetermined operation on a workpiece manipulated by the robot by means of a peripheral device, a method of performing a predetermined operation on a workpiece whose position / posture is maintained and adjusted by the peripheral device, and the like.
[0035] like Figure 1 As shown, the robot system 1 includes at least one robot 10, at least one peripheral device 50, and a control system 2. The robot 10 is, for example, a 6-axis vertical multi-joint robot, and includes a base 11, a rotating portion 12, a first arm 13, a second arm 14, a wrist portion 15, a front end portion 16, and actuators 41, 42, 43, 44, 45, 46.
[0036] The base 11 is fixed to the ground or a carriage, etc. The rotating part 12 is provided on the base 11 and is rotatable around a vertical axis 21. That is, the robot 10 includes a joint 31 that allows the rotating part 12 to rotate around the axis 21.
[0037] The first arm 13 extends from the rotating part 12 and can swing around the axis 22 that intersects (e.g., is orthogonal to) the axis 21. That is, the robot 10 has a joint 32 that can swing the first arm 13 around the axis 22. In addition, the intersection here includes the intersection in a state where the two arms are in a twisted relationship with each other, such as a so-called three-dimensional intersection. The same applies to the following.
[0038] The second arm 14 extends from the front end of the first arm 13 and can swing about an axis 23 intersecting (eg, orthogonal to) the axis 21. That is, the robot 10 has a joint 33 that can swing the second arm 14 about the axis 23. The axis 23 may be parallel to the axis 22.
[0039] The front end of the second arm 14 is rotatable about an axis 24 intersecting (eg, orthogonal to) the axis 23 in the extending direction of the second arm 14. That is, the robot 10 includes a joint 34 that allows the front end of the second arm 14 to rotate about the axis 24.
[0040] The wrist 15 extends from the front end of the second arm 14 and is swingable about an axis 25 intersecting (eg, orthogonal to) the axis 24. That is, the robot 10 includes a joint 35 that allows the wrist 15 to swing about the axis 25.
[0041] The front end portion 16 is provided at the front end portion of the wrist portion 15, and can rotate around an axis 26 that intersects (e.g., is orthogonal to) the axis 25 along the extension direction of the wrist portion 15. That is, the robot 10 has a joint 36 that can rotate the front end portion 16 around the axis 26. Various tools for work are provided at the front end portion 16. Specific examples of the tools include a hand for holding a workpiece, a spray gun for spraying paint, and a welding torch.
[0042] Actuators 41, 42, 43, 44, 45, 46 drive joints 31, 32, 33, 34, 35, 36, respectively. For example, actuator 41 rotates rotating portion 12 around axis 21, actuator 42 swings first arm 13 around axis 22, actuator 43 swings second arm 14 around axis 23, actuator 44 rotates the front end portion of second arm 14 around axis 24, actuator 45 swings wrist portion 15 around axis 25, and actuator 46 rotates front end portion 16 around axis 26.
[0043] In addition, the robot 10 can also be configured so that the position and posture of the front end portion 16 can be changed within a desired range. For example, the robot 10 can also be a 7-axis vertical multi-joint robot in which a redundant axis is added to the above-mentioned 6-axis vertical multi-joint robot. In addition, the robot 10 can be a so-called scalar type robot or a parallel link type robot.
[0044] Specific examples of the peripheral device 50 include NC (Numerical Control) machine tools (such as machining centers, NC lathes, NC milling machines, etc.), workpiece posture adjustment devices that hold workpieces and adjust their postures, and the like. The peripheral device 50 may also be a robot having the same structure as the robot 10. Figure 1 Although one robot 10 and two peripheral devices 50 are shown in FIG. 1 , the number of the robot 10 and the peripheral devices 50 is not particularly limited.
[0045] The control system 2 is configured to perform the following processing: at least causing the robot 10 to move based on a program; when an abnormal state occurs in the peripheral device 50, interrupting a series of multiple actions performed by the robot 10 in conjunction with the peripheral device 50 based on the action program; generating a recovery program based on at least the robot state information of the robot 10 at the time point when the action was interrupted due to the occurrence of the abnormal state; and causing the robot 10 to move relative to the peripheral device 50 based on the recovery program so that the interrupted action based on the action program can be continued.
[0046] For example, the control system 2 has a controller 100, a control assisting device 200, and a simulator 300. These structures are illustrated below. The controller 100 is configured on the so-called edge side based on the configuration positions of the robot 10 and the peripheral device 50. In contrast, the simulator 300 is configured on the so-called cloud side. For example, the simulator 300 communicates with the controller 100 via a communication network NW. The communication network NW can be the Internet or a dedicated network.
[0047] The control assisting device 200 is disposed between the simulator 300 and the controller 100. The control assisting device 200 may also be disposed between the simulator 300 and a plurality of controllers 100. The control assisting device 200 may be disposed on the edge side or on the cloud side. For example, the control assisting device 200 is disposed on the edge side and connected to the controller 100. The connection here means that information communication can be performed wirelessly or wiredly.
[0048] The simulator 300 communicates with at least one control support device 200 via the communication network NW, and communicates with the controller 100 via the communication network NW and the control support device 200. The simulator 300 may also communicate with a plurality of control support devices 200. The functions and structures of the controller 100, the control support device 200, and the simulator 300 are described below.
[0049] (Controller)
[0050] The controller 100 performs the following processing: controlling at least the robot 10 based on a program; interrupting the above-mentioned series of multiple actions when an abnormal state occurs in the peripheral device 50; obtaining a recovery program based on at least the robot state information of the robot 10 at the time point when the action was interrupted due to the occurrence of the abnormal state; and based on the recovery program, causing the robot 10 to act relative to the peripheral device 50 so that the interrupted action based on the action program can be continued.
[0051] For example, the controller 100 is a unit controller that controls at least one robot 10 and at least one peripheral device 50 that are concentrated in one unit. The controller 100 is configured to output drive power to the actuators 41, 42, 43, 44, 45, and 46 of the robot 10 and output control commands to the peripheral device 50. The controller 100 may also be configured to output drive power to at least one peripheral device 50 instead of a control command.
[0052] In addition, the controller 100 may not necessarily be concentrated in one housing, but may be divided into a plurality of housings. For example, the controller 100 may be divided into a robot controller that outputs driving power to the actuators 41, 42, 43, 44, 45, and 46 of the robot 10 according to control instructions, and a programmable logic controller that outputs control instructions to the robot controller and the peripheral device 50.
[0053] In the presence of a peripheral device 50 that receives driving power (hereinafter referred to as a "first type of peripheral device 50") and a peripheral device 50 that receives control instructions (hereinafter referred to as a "second type of peripheral device 50"), the controller 100 can be divided into: the above-mentioned robot controller; a servo driver that outputs driving power to the first type of peripheral device 50 according to the control instructions; and a programmable logic controller that outputs control instructions to the robot controller, the servo driver, and the second type of peripheral device 50.
[0054] like Figure 2 As shown, the controller 100 (control device) includes a program storage unit 111 , a control unit 112 , an interrupt unit 113 , and a recovery program acquisition unit 114 as functional components (hereinafter referred to as “functional blocks”).
[0055] The program storage unit 111 stores operating programs for operating the robot 10 and the peripheral device 50. The operating programs include a robot operating program for operating the robot 10 and a peripheral processing program for causing the peripheral device 50 to execute a process in conjunction with the robot 10.
[0056] The robot motion program includes a plurality of unit tasks arranged in chronological order. Each unit task is a program for causing the robot 10 to perform a series of unit actions. Specific examples of unit actions include holding a workpiece, transporting a held workpiece, installing a workpiece to a peripheral device 50, removing a workpiece from a peripheral device 50, installing a tool to a peripheral device 50, removing a tool from a peripheral device 50, holding a tool, transporting a held tool, and processing a workpiece by a tool.
[0057] For example, a unit task includes a plurality of motion commands arranged in chronological order. Each motion command includes a target position and a target posture of the front end 16, a moving speed to the target position and the target posture, and an interpolation method from the current position and the current posture to the target position and the target posture. Specific examples of the interpolation method include linear interpolation, S-shaped interpolation, and the like.
[0058] The robot motion program may also have an interruptible point between one or more than two actions of the plurality of unit actions of the robot 10. Information indicating the interruptible point may also be stored in association with the unit task. For example, each unit task may also include a stop flag indicating whether the action of the robot 10 can be interrupted after the task is completed. For example, when the stop flag of a unit task is "yes", the point between the unit task and the next unit task becomes an interruptible point.
[0059] The peripheral processing program includes at least one processing command for causing the peripheral device 50 to execute a process in conjunction with the robot 10. The processing command is a command code that indicates the content of a series of unit processes in a format that can be recognized by the peripheral device 50.
[0060] The control unit 112 operates at least the robot 10 based on the program. For example, the control unit 112 operates the robot 10 based on the robot operation program, and operates the peripheral device 50 based on the peripheral device operation program.
[0061] For example, the control unit 112 repeatedly controls the robot 10 and the peripheral device 50 in a predetermined control cycle. In each control cycle, the control unit 112 calculates a control command for the robot 10 based on the status of the robot 10 and the peripheral device 50 and the robot motion program, and outputs the drive power corresponding to the calculated control command to the actuators 41, 42, 43, 44, 45, and 46.
[0062] For example, the control unit 112 calculates the target position and target posture of the front end portion 16 in each control cycle based on the status of the robot 10 and the peripheral device 50 and the robot motion program, and calculates the target angles of the actuators 41, 42, 43, 44, 45, and 46 as the above-mentioned control instructions through inverse kinematics calculation based on the target position and target posture. In each control cycle, the control unit 112 calculates and outputs the control instructions for the peripheral device 50 based on the status of the robot 10 and the peripheral device 50 and the peripheral device motion program.
[0063] When an abnormal state occurs in the peripheral device 50, the interruption unit 113 interrupts the operation of the robot 10 based on the robot operation program (a series of multiple unit operations linked with the peripheral device 50). The interruption unit 113 may also interrupt the operation of the peripheral device 50 based on the peripheral device operation program (operation linked with the robot 10).
[0064] Specific examples of abnormal conditions include improper installation of the workpiece, improper installation of the tool, absence of the workpiece, absence of the tool, poor quality of the workpiece, abnormal overload of the actuator, abnormal heating, and poor opening and closing of the door of the peripheral device 50. In addition, the abnormal conditions occurring in the peripheral device 50 include abnormal conditions occurring due to failure in the operation of the robot 10, such as failure to hold the workpiece and failure to hold the tool.
[0065] The interruption unit 113 may also interrupt the multiple unit actions of the robot 10 at the interruptible point after the abnormal state occurs in the peripheral device 50. For example, the interruption unit 113 may also interrupt the multiple unit actions of the robot 10 at the next interruptible point when the abnormal state occurs in the peripheral device 50.
[0066] The recovery program acquisition unit 114 acquires a recovery program based on at least the state information of the robot 10 at the time when the operation was interrupted due to the occurrence of the abnormal state. For example, the recovery program acquisition unit 114 sends the state information of the robot system 1 at the time when the robot 10 interrupted the operation due to the occurrence of the abnormal state to the control support device 200, and acquires the recovery program generated based on the state information of the robot system 1 from the control support device 200.
[0067] The status information of the robot system 1 includes status information of the robot 10 (hereinafter referred to as “robot status information”) and status information of the peripheral device 50 (hereinafter referred to as “peripheral device status information”).
[0068] The robot state information includes at least information indicating the position and posture of the distal end portion 16. The information indicating the position and posture of the distal end portion 16 may be angle information of the joints 31, 32, 33, 34, 35, and 36. The robot state information may further include a captured image of the robot 10 or the like.
[0069] The peripheral device status information includes abnormal status information indicating an abnormal status in the peripheral device 50. As specific examples of the abnormal status information, in addition to level information indicating a load level, a heat level, etc., various alarm information notifying the occurrence of the above-mentioned various abnormal states can also be cited. The peripheral device status information can also include a captured image of the peripheral device 50, etc.
[0070] The recovery program may include a recovery program for the robot (hereinafter referred to as a “robot recovery program”) and a recovery program for the peripheral device 50 (hereinafter referred to as a “peripheral recovery program”).
[0071] The robot recovery program is a program for causing the robot 10 to execute an action (hereinafter referred to as a "recovery action") for enabling the interrupted action based on the action program to be continued. Specific examples of the recovery action include replacement of a workpiece, replacement of a tool, resetting of a workpiece, resetting of a tool, etc. In addition, when the peripheral device 50 is a robot having the same structure as the robot 10 (hereinafter referred to as an "other robot"), the recovery action may also include replacing a predetermined operation to be performed by the other robot.
[0072] Furthermore, making the interrupted action based on the action program continue includes making the action continue from the time point before the interruption time point in addition to making the action continue from the time point before the interruption time point. The time point before the interruption time point may also be the start time point of the action program. The state of being able to continue means that the abnormal state is resolved and the action based on the action program can be started again.
[0073] Similar to the robot action program, the robot recovery program includes a plurality of unit tasks arranged in chronological order. The number of unit tasks included in the robot recovery program may also be one. The peripheral recovery program is a program for causing the peripheral device 50 to perform a process for making the interrupted action based on the action program continue (hereinafter referred to as "recovery process"). As a specific example of the recovery process, origin recovery and the like can be cited. The peripheral recovery program includes at least one processing command for causing the peripheral device 50 to perform recovery processing in conjunction with the robot 10.
[0074] When the recovery program acquisition unit 114 acquires the recovery program, the control unit 112 causes the robot 10 to operate relative to the peripheral device 50 based on the recovery program so that the interrupted operation based on the operation program can be continued. Thereafter, the control unit 112 causes the robot 10 to resume the interrupted operation based on the operation program.
[0075] When the recovery program includes the above-mentioned robot recovery program and the peripheral recovery program, the control unit 112 causes the robot 10 to move relative to the peripheral device 50 based on the robot recovery program so that the interrupted action based on the action program can be continued, and causes the peripheral device 50 to perform recovery processing in conjunction with the robot 10 based on the peripheral recovery program.
[0076] Furthermore, the controller 100 may be configured to periodically transmit status information of the robot system 1 to the control support device 200 even when no abnormal state occurs.
[0077] (Control auxiliary device)
[0078] The control assistance device 200 is configured to perform the following processing: at least obtaining the above-mentioned robot state information and the above-mentioned abnormal state information; determining the category of the abnormal state at least based on the abnormal state information; and outputting a recovery program of the robot 10 for making the interrupted action based on the action program continue based on at least the category of the abnormal state and the robot state information.
[0079] The control assisting device 200 is a computer that communicates with at least one controller 100 and assists the control of the controller 100 based on information collected from the controller 100. The control assisting device 200 may also be configured to communicate with a plurality of controllers 100 and assist the control of each controller 100 based on information collected from the plurality of controllers 100. Figure 3 As shown, the control support device 200 includes a unit action database 211, a recovery processing database 212, a recovery procedure setting unit 213, a recovery procedure database 214, a category determination unit 215, a recovery procedure determination unit 216 and a recovery program output unit 217 as functional blocks.
[0080] The unit action database 211 stores a plurality of unit actions that can be used to constitute the above-mentioned robot recovery action. The unit action database 211 can store a plurality of unit actions as conceptual information indicating the purpose of the action, such as the gripping of a workpiece, the transportation of the gripped workpiece, the installation of a workpiece to the peripheral device 50, the removal of a workpiece from the peripheral device 50, the installation of a tool to the peripheral device 50, the removal of a tool from the peripheral device 50, the gripping of a tool, the transportation of a gripped tool, etc., and can also store a plurality of unit tasks in association with a plurality of unit actions, respectively. The plurality of unit tasks stored in the unit action database 211 can also include unit tasks that are common to the unit tasks included in the robot action program of the program storage unit 111.
[0081] The recovery process database 212 stores a plurality of unit processes that can be used to constitute the above-mentioned recovery process. The recovery process database 212 can store a plurality of unit processes as conceptual information indicating the purpose of the process, such as initialization, origin recovery, etc., or can store a plurality of process commands by associating them with the plurality of unit processes. The plurality of process commands stored in the recovery process database 212 can also include process commands that are common to the process commands included in the peripheral process program of the program storage unit 111.
[0082] The recovery step setting unit 213 sets the recovery step for each type of abnormal state that may occur in the peripheral device 50 based on the user's input (for example, input to the input device 226). The recovery step includes a recovery step that the robot 10 should execute (hereinafter referred to as a "robot recovery step") and a recovery step that the peripheral device 50 should execute (hereinafter referred to as a "peripheral recovery step") in order to enable the action based on the action program that was interrupted due to the occurrence of the abnormal state to be continued. The robot recovery step includes at least one unit action and its execution step. The peripheral recovery step includes at least one unit process and its execution order.
[0083] The recovery procedure database 214 stores the recovery procedures set by the recovery procedure setting unit 213 according to the category of the abnormal state. The category determination unit 215 determines the category of the abnormal state based on at least the abnormal state information. The category here is information indicating the main cause of the abnormal state at a level that can derive the recovery procedure. As an example, the category determination unit 215 determines which category in the recovery procedure database 214 the abnormal state matches based on the abnormal state information.
[0084] The recovery step determination unit 216 (unit action determination unit) determines a unit action representing one or more than two actions of the action of the robot 10 that has been determined based on the category of the abnormal state determined by the category determination unit 215. For example, the recovery step determination unit 216 determines the recovery step based on the category of the abnormal state determined by the category determination unit 215 and the recovery step database 214. More specifically, the recovery step determination unit 216 determines the recovery step associated with the category of the abnormal state in the recovery step database 214. Thus, at least one unit action included in the robot recovery step is determined, and at least one unit process included in the peripheral recovery step is determined as the recovery process.
[0085] In this way, since the unit action and recovery process corresponding to the category of the abnormal state are determined, the category determination unit 215 determines the category of the abnormal state, which is equivalent to determining the unit action and recovery process in this embodiment. That is, the category determination unit 215 determines one or more unit actions of the robot 10 in addition to the category of the abnormal state based on the abnormal state information, and determines the recovery process in the peripheral device 50.
[0086] The recovery program output unit 217 outputs a recovery program of the robot 10 for making the interrupted action based on the action program continue to the controller 100 based on at least the type of abnormal state and the robot state information. For example, the recovery program output unit 217 sends the recovery step determined by the recovery step determination unit 216 and the state information of the robot system 1 obtained from the controller 100 to the simulator 300, obtains a recovery program generated based on the recovery step and the state information of the robot system 1 from the simulator 300, and outputs the obtained recovery program to the controller 100.
[0087] (Simulator)
[0088] The simulator 300 (recovery program generation unit) is configured to perform the following processing: when an abnormal state occurs in the peripheral device 50, at least the robot state information of the robot 10 that has interrupted a series of multiple actions based on the action program and linked with the peripheral device 50 is obtained; and a recovery program of the robot 10 is generated based on at least the robot state information to enable the interrupted actions based on the action program to be continued.
[0089] The simulator 300 may also generate a recovery program by using a simulation of the robot 10 and the peripheral device 50 based at least on the robot state information. The simulator 300 may also generate a recovery program by reproducing the states of the robot 10 and the peripheral device 50 in simulation based at least on the abnormal state information and the robot state information. The simulator 300 may also generate a recovery program by using a simulation based at least on the type of the abnormal state and the robot state information.
[0090] The simulator 300 is a unit simulator that simulates control by the controller 100 based on simulation models of the robot 10 and the peripheral device 50. The simulator 300 communicates with at least one control support device 200, and simulates control by at least one controller 100 based on information collected by the control support device 200. The simulator 300 may also be configured to communicate with a plurality of control support devices 200, and simulate control by a plurality of controllers 100 based on information collected by each control support device 200.
[0091] like Figure 4 As shown, the simulator 300 includes a simulation model storage unit 311 , a blank cut generation unit 312 , a programming unit 313 , an interference check unit 314 , and a restoration program output unit 315 as functional blocks.
[0092] The simulation model storage unit 311 stores model data of the robot 10, model data of the peripheral device 50, and model data of workpieces and tools. The model data of the robot 10 includes the configuration, structure, and dimensions of each part of the robot 10. The model data of the peripheral device 50 includes the configuration, structure, and dimensions of each part of the peripheral device 50. The model data of the workpiece and tools includes the structure and dimensions of each part.
[0093] The air cut generating unit 312 generates an air cut motion that the robot 10 should perform before, after, or before and after the unit motion based on at least one unit motion included in the recovery step acquired from the control support device 200 and the robot state information using a simulation.
[0094] The air-cut generation unit 312 may also use simulation to generate an air-cut action to avoid collision between the robot 10 and other objects including the peripheral device 50. For example, the air-cut generation unit 312 reproduces a model of the state of the robot 10 and the peripheral device 50 in a virtual space based on the state information of the robot system 1 and the model data stored in the simulation model storage unit 311, and generates an air-cut action from the current position and posture of the front end portion 16 to the starting point of the initial unit action (the target position and target posture of the initial action command) based on the model.
[0095] In addition, when the recovery step includes multiple unit actions, the air-cut generation unit 312 generates an air-cut action between the unit actions. For example, the air-cut generation unit 312 generates an air-cut action to the end point of the preceding unit action (the target position and target posture of the last action command) and the starting point of the subsequent unit action (the target position and target posture of the initial action command). As an example of an air-cut action, the air-cut generation unit 312 generates an air-cut task including multiple action commands arranged in chronological order. Each action command includes the target position and target posture of the front end 16, the moving speed to the target position and target posture, and the interpolation method from the current position and current posture to the target position and target posture.
[0096] As an example, the air cutting generation unit 312 generates a via point that can avoid collision with other objects in the air cutting operation interval, and repeatedly corrects the air cutting task to pass through the via point until the collision can be avoided in the entire air cutting task. In addition, the generation method of the air cutting operation is also disclosed in detail in, for example, Japanese Patent No. 4103057.
[0097] The programming unit 313 generates a robot recovery program based on at least one unit action included in the recovery step and the empty cut action generated by the empty cut generating unit 312. For example, the programming unit 313 generates the robot recovery program by connecting at least one unit task corresponding to at least one unit action included in the recovery step and the empty cut task generated by the empty cut generating unit 312. In addition, the programming unit 313 generates the above-mentioned peripheral recovery program based on the recovery process included in the recovery step.
[0098] The interference check unit 314 checks whether the robot 10 collides with other objects in the simulation based on the robot recovery program generated by the programming unit 313. For example, the interference check unit 314 calculates the transition of the posture of the robot 10 based on the robot recovery program by performing inverse kinematics calculations and forward kinematics calculations based on the model data stored in the simulation model storage unit 311, and checks whether each posture has a collision.
[0099] The recovery program output unit 315 outputs a recovery program that combines the robot recovery program generated by the programming unit 313 and confirmed as non-interference by the interference check unit 314 and the peripheral recovery program generated by the programming unit 313 to the control support device 200. The recovery program output unit 315 may output only the recovery program to the control support device 200, or may output to the control support device 200 a program that connects an action program that is restarted after the recovery program and the recovery program.
[0100] The control support device 200 outputs the recovery program acquired from the recovery program output unit 315 to the controller 100. In response, the control unit 112 of the controller 100 causes the robot 10 to operate relative to the peripheral device 50 based on the robot recovery program, and causes the peripheral device 50 to perform recovery processing in conjunction with the robot 10 based on the peripheral recovery program. Then, the controller 100 restarts the operation of the robot 10 and the peripheral device 50 based on the operation program.
[0101] Figure 5 This is a timing diagram illustrating the actions of the robot 10 and the processing of the peripheral device 50 based on the action program. The actions of the robot 10 include unit actions R01, R02, R03, R04, and R05. The processing of the peripheral device 50 on the left includes unit processing M11, M12, and M13, and the unit processing M12 is executed in conjunction with the unit action R04. The processing of the peripheral device 50 on the right includes unit processing M21, M22, M23, and M24, and the unit processing M22 is executed in conjunction with the unit action R02. Point P1 immediately after the unit action R04 represents the above-mentioned interruptible point.
[0102] Example in Figure 5The control system 2 functions when an abnormal state occurs in the middle of the unit processing M23 (reference point P2). If an abnormal state occurs at point P2, the controller 100 continues the operation of the robot 10 until point P1, which is an interruptible point after point P2, and interrupts the operation of the robot 10.
[0103] Then, a recovery program is generated by the control assisting device 200 and the simulator 300 and output to the controller 100. Figure 6 As shown, the controller 100 causes the robot to execute a recovery action R11 based on the robot recovery program. In conjunction with this, the controller 100 causes the peripheral device 50 to execute a recovery process M33 based on the peripheral recovery program.
[0104] Thereafter, the controller 100 resumes the operation of the robot 10 from the unit action R05 , resumes the processing of the left peripheral device 50 from the unit process M13 , and resumes the processing of the right peripheral device 50 from the unit process M23 in which the abnormal state has occurred.
[0105] In addition, the simulator 300 may be configured to generate a unit task corresponding to the unit action when the unit action included in the recovery step is the above-mentioned conceptual information. In addition, the simulator 300 may be configured to store the generated recovery program in association with the recovery step and the state information of the robot system 1. In this case, when the recovery step is consistent with the state information of the robot system 1, the past recovery program can be used.
[0106] (Hardware structure of control system)
[0107] Figure 7 is a block diagram illustrating the hardware structure of the control system. Figure 7 As shown, the controller 100 includes a circuit 120. The circuit 120 includes at least one processor 121, a memory 122, a storage 123, a communication port 124, a driver 125, an input / output port 126, and a driver 127. The storage 123 is a non-volatile storage medium (e.g., a flash memory) that can be read by a computer. The storage 123 stores a program for causing the controller 100 to perform the following processing: controlling the robot 10 at least based on the program; interrupting the above series of multiple actions when an abnormal state occurs in the peripheral device 50; obtaining a recovery program based on at least the robot state information of the robot 10 at the time point when the action is interrupted due to the occurrence of the abnormal state; and causing the robot 10 to act relative to the peripheral device 50 based on the recovery program so that the interrupted action based on the action program can be continued. For example, the storage 123 stores the program for constituting the above-mentioned functional blocks by cooperating with the hardware of the controller 100.
[0108] The memory 122 temporarily stores programs loaded from the storage 123 and calculation results of the processor 121. The processor 121 executes the above-mentioned programs by cooperating with the memory 122, thereby constituting each functional block of the controller 100. The communication port 124 performs network communication with the control auxiliary device 200 according to the instructions from the processor 121. For example, the communication port 124 is used to obtain the recovery program obtained by the above-mentioned recovery program acquisition unit 114. The driver 125 drives the actuators 41, 42, 43, 44, 45, and 46 of the robot 10 according to the instructions from the processor 121. The input / output port 126 inputs and outputs electrical signals with the peripheral device 50 according to the instructions from the processor 121. The driver 127 drives the actuator of the peripheral device 50 according to the instructions from the processor 121.
[0109] The control assisting device 200 includes a circuit 220. The circuit 220 includes at least one processor 221, a memory 222, a storage 223, a communication port 224, a network adapter 225, an input device 226, and a display device 227. The storage 223 is a non-volatile storage medium (e.g., a flash memory) that can be read by a computer. The storage 223 stores a program for causing the control assisting device 200 to perform the following processing: at least obtaining the above-mentioned robot state information and the above-mentioned abnormal state information; at least based on the abnormal state information, determining the category of the abnormal state; and at least based on the category of the abnormal state and the robot state information, outputting a recovery program of the robot 10 for making the interrupted action based on the action program into a state that can be continued. For example, the storage 223 stores a program for constituting the above-mentioned functional blocks by cooperating with the hardware of the control assisting device 200.
[0110] The memory 222 temporarily stores programs loaded from the storage 223 and calculation results of the processor 221. The processor 221 executes the above-mentioned programs in cooperation with the memory 222, thereby constituting each functional block of the control auxiliary device 200. The communication port 224 performs network communication with the controller 100 according to the instructions from the processor 221. For example, the communication port 224 is used for the output of the recovery program by the above-mentioned recovery program output unit 217. The network adapter 225 communicates with the simulator 300 via the communication network NW according to the instructions from the processor 221. The input device 226 is, for example, a keyboard. The display device 227 is, for example, a liquid crystal monitor. The input device 226 and the display device 227 can also be integrated like a so-called touch panel. The input device 226 and the display device 227 are used, for example, for the setting of the recovery step by the above-mentioned recovery step setting unit 213.
[0111] The simulator 300 includes a circuit 320. The circuit 320 includes at least one processor 321, a memory 322, a storage 323, and a network adapter 324. The storage 323 is a non-volatile storage medium (such as a hard disk drive or a flash memory) that can be read by a computer. The storage 323 stores a program for causing the simulator 300 to perform the following processing: in the event of an abnormal state occurring in the peripheral device 50, at least obtaining robot state information of the robot 10 that interrupts a series of multiple actions based on the action program and linked with the peripheral device 50; and generating a recovery program of the robot 10 that enables the interrupted action based on the action program to continue based on at least the robot state information. For example, the storage 323 stores a program for constituting the above-mentioned functional blocks by cooperating with the hardware of the simulator 300.
[0112] The memory 322 temporarily stores programs loaded from the storage 323 and calculation results of the processor 321. The processor 321 executes the above programs in cooperation with the memory 322 to form each functional block of the simulator 300. The network adapter 324 communicates with the control support device 200 via the communication network NW according to instructions from the processor 321.
[0113] In addition, the above hardware structure is only an example and can be changed appropriately. For example, the simulator 300 does not have to be configured on the cloud side, and can also be configured on the edge side together with the controller 100 and the control assist device 200. The control assist device 200 can be assembled in the controller 100, or the control assist device 200 and the simulator 300 can be assembled in the controller 100. In addition, the controller 100, the control assist device 200 and the simulator 300 are not necessarily limited to devices that configure each function through a program. For example, the controller 100, the control assist device 200 and the simulator 300 can also configure at least part of the function through a dedicated logic circuit or an ASIC (Application Specific Integrated Circuit) that integrates the logic circuit.
[0114] (Control Method)
[0115] Next, as an example of the control method, a control procedure of the robot system 1 is illustrated. The control procedure includes: a control procedure of the robot 10 and the peripheral device 50 performed by the controller 100; a recovery program generation assisting procedure performed by the control assisting device 200; a recovery program generation procedure performed by the simulator 300; and a recovery procedure setting procedure performed by the control assisting device 200. Each of the steps is illustrated in detail below.
[0116] (Control Step)
[0117] The control steps of the robot 10 and the peripheral device 50 performed by the controller 100 include: controlling at least the robot 10 based on a program; interrupting the above-mentioned series of multiple actions when an abnormal state occurs in the peripheral device 50; obtaining a recovery program based on at least the robot state information of the robot 10 at the time point when the action was interrupted due to the occurrence of the abnormal state; and based on the recovery program, causing the robot 10 to act relative to the peripheral device 50 so that the interrupted action based on the action program can be continued.
[0118] like Figure 8 As shown, the controller 100 first executes steps S01, S02, and S03. In step S01, the control unit 112 calculates the target position and target posture of the front end 16 based on the status of the robot 10 and the peripheral device 50 and the robot motion program, and calculates the target angles of the actuators 41, 42, 43, 44, 45, and 46 as the above-mentioned control instructions through inverse kinematics calculation based on the target position and target posture. In addition, the control unit 112 calculates the control instructions for the peripheral device 50 based on the status of the robot 10 and the peripheral device 50 and the peripheral device motion program.
[0119] In step S02, the control unit 112 outputs the driving power corresponding to the control command calculated in step S01 to the actuators 41, 42, 43, 44, 45, and 46, and outputs the control command calculated in step S01 to the peripheral device 50. In step S03, the interruption unit 113 confirms whether an abnormal state has occurred. For example, the interruption unit 113 confirms whether an abnormal state has occurred based on the state information obtained from the peripheral device 50.
[0120] If it is determined in step S03 that no abnormal state has occurred, the controller 100 executes step S04. In step S04, the control unit 112 confirms whether the execution of the operating program has been completed.
[0121] If it is determined in step S04 that the execution of the action program is not completed, the controller 100 executes step S05. In step S05, the control unit 112 waits for the control cycle to pass and transfers the processing to the control of the next cycle. Then, the controller 100 returns the processing to step S01. Thereafter, the robot 10 and the peripheral device 50 are controlled while confirming the occurrence of the abnormal state until the execution of the action program is completed.
[0122] If it is determined in step S03 that an abnormal state has occurred, the controller 100 performs an interruption process in step S11. Thereafter, the controller 100 performs a recovery process in step S12 and then starts step S04 again. The details of the interruption process and the recovery process will be described later.
[0123] When it is determined in step S04 that the execution of the operating program has been completed, the controller 100 completes the control of the robot 10 and the peripheral device 50 .
[0124] Fig. 9 2 is a flowchart illustrating the steps of the interrupt processing in step S11. Fig. 9 As shown, the controller 100 first executes steps S21 and S22. In step S21, the interruption unit 113 uses the next interruptible point that comes when an abnormal state occurs in the peripheral device 50 as the interruption point of the action of the robot 10. In step S22, the interruption unit 113 confirms whether the action of the robot 10 reaches the interruption point.
[0125] If it is determined in step S22 that the action of the robot 10 has not reached the interruption point, the controller 100 executes steps S23, S24, and S25. In step S23, the control unit 112 waits for the control cycle to pass and transfers the processing to the control of the next cycle. In step S24, the control unit 112 calculates the control instructions of the robot 10 and the peripheral device 50 in the same way as step S01. In step S25, the control unit 112 outputs the driving power corresponding to the control instruction calculated in step S24 to the actuators 41, 42, 43, 44, 45, and 46, and outputs the control instruction calculated in step S24 to the peripheral device 50 in the same way as step S02. Then, the controller 100 returns the processing to step S22.
[0126] When it is determined in step S22 that the operation of the robot 10 has reached the interruption point, the interruption unit 113 causes the control unit 112 to interrupt the control of the robot 10 and the peripheral device 50. The interruption process is completed as described above.
[0127] Fig.10 2 is a flowchart illustrating the steps of the recovery process in step S12. Fig.10 As shown, the controller 100 first executes steps S31, S32, S33, S34, S35, and S36. In step S31, the recovery program acquisition unit 114 notifies the control support device 200 of the interruption of the operation of the robot 10 and the peripheral device 50 due to the occurrence of the abnormal state. In step S32, the recovery program acquisition unit 114 sends the state information of the robot system 1 at the time point when the robot 10 interrupted the operation due to the occurrence of the abnormal state to the control support device 200. In step S33, the recovery program acquisition unit 114 waits for the recovery program generated based on the state information of the robot system 1 to be acquired from the control support device 200.
[0128] In step S34, the control unit 112 calculates the target position and target posture of the front end portion 16 based on the state of the robot 10 and the peripheral device 50 and the robot recovery program, and calculates the target angles of the actuators 41, 42, 43, 44, 45, and 46 as the above-mentioned control instructions by inverse kinematics calculation based on the target position and target posture. In addition, the control unit 112 calculates the control instructions for the peripheral device 50 based on the state of the robot 10 and the peripheral device 50 and the peripheral device operation program. In step S35, the control unit 112 outputs the driving power corresponding to the control instruction calculated in step S34 to the actuators 41, 42, 43, 44, 45, and 46, and outputs the control instruction calculated in step S34 to the peripheral device 50. In step S36, the control unit 112 confirms whether the execution of the recovery program is completed.
[0129] If it is determined in step S36 that the execution of the recovery program is not completed, the controller 100 executes step S37. In step S37, the control unit 112 waits for the control cycle to pass and transfers to the control of the next cycle. Then, the controller 100 returns the process to step S31. Thereafter, the robot 10 and the peripheral device 50 are continuously controlled based on the recovery program until the execution of the recovery program is completed.
[0130] When it is determined in step S36 that the execution of the recovery program has been completed, the controller 100 completes the control of the robot 10 and the peripheral device 50 based on the recovery program. The recovery process is thus completed.
[0131] (Auxiliary steps for generating recovery programs)
[0132] The auxiliary steps for generating the recovery program performed by the control auxiliary device 200 include: obtaining at least the above-mentioned robot state information and the above-mentioned abnormal state information; determining the category of the abnormal state at least based on the abnormal state information; and outputting a recovery program of the robot 10 for making the interrupted action based on the action program become able to continue based on at least the category of the abnormal state and the robot state information.
[0133] like Fig.11 As shown, the control support device 200 executes steps S41, S42, S43, S44, S45, S46, and S47. In step S41, the recovery program output unit 217 waits for notification of interruption of the operation of the robot 10 and the peripheral device 50. In step S42, the recovery program output unit 217 waits for receiving the state information of the robot system 1 at the time when the robot 10 interrupted the operation due to the occurrence of the abnormal state.
[0134] In step S43 , the type determination unit 215 determines the type of the abnormal state based on at least the abnormal state information. In step S44 , the recovery procedure determination unit 216 determines the recovery procedure based on the type of the abnormal state determined by the type determination unit 215 and the recovery procedure database 214 .
[0135] In step S45, the recovery program output unit 217 sends the recovery step determined by the recovery step determination unit 216 and the state information of the robot system 1 obtained from the controller 100 to the simulator 300. In step S46, the recovery program output unit 217 waits for the recovery program generated based on the recovery step and the state information of the robot system 1 to be obtained from the simulator 300. In step S47, the recovery program output unit 217 outputs the recovery program obtained from the simulator 300 to the controller 100. The above is the end of the recovery program generation assistance step.
[0136] (Steps for generating a recovery program)
[0137] The steps of generating a recovery program performed by the simulator 300 include: when an abnormal state occurs in the peripheral device 50, at least obtaining the robot state information of the robot 10 that has interrupted a series of multiple actions based on the action program and linked with the peripheral device 50; and generating a recovery program of the robot 10 for enabling the interrupted actions based on the action program to continue based on at least the robot state information.
[0138] like Fig.12 As shown, the simulator 300 first executes steps S51, S52, S53, S54, and S55. In step S51, the empty cut generation unit 312 waits for the recovery step determined by the recovery step determination unit 216 and the control support device 200 to receive the state information of the robot system 1 acquired from the controller 100. In step S52, the empty cut generation unit 312 reproduces the state of the robot 10 and the peripheral device 50 in the virtual space based on the state information of the robot system 1 and the model data stored in the simulation model storage unit 311. Hereinafter, the state reproduced in the virtual space by the empty cut generation unit 312 is referred to as a "reproduction model".
[0139] In step S53, the air cut generation unit 312 generates the air cut action based on the reproduction model. In step S54, the programming unit 313 generates a robot recovery program based on at least one unit action included in the recovery step and the air cut action generated by the air cut generation unit 312. In addition, the programming unit 313 generates the peripheral recovery program based on the recovery process included in the recovery step. In step S55, the interference check unit 314 confirms whether the robot 10 collides with other objects in simulation based on the robot recovery program generated by the programming unit 313.
[0140] When it is determined in step S55 that the robot 10 has collided with another object, the simulator 300 returns the process to step S53 and executes the generation of the air cutting motion again.
[0141] If it is determined in step S55 that the robot 10 does not collide with other objects, the simulator 300 executes step S56. In step S56, the recovery program output unit 315 outputs a recovery program obtained by combining the robot recovery program generated by the programming unit 313 and confirmed by the interference check unit 314 as not causing interference and the peripheral recovery program generated by the programming unit 313 to the control support device 200. The above is the completion of the recovery program generation process.
[0142] (Restoration step setting procedure)
[0143] The setting step of the recovery step performed by the control assistance device 200 includes: obtaining the selection input of the unit action of the robot 10 and the selection input of the unit processing of the peripheral device 50 according to each category of the abnormal state; and setting the recovery step based on the unit action and recovery processing selected in the selection input.
[0144] like Fig.13 As shown, the control support device 200 executes steps S61, S62, S63, S64, S65, and S66. In step S61, the recovery step setting unit 213 waits for a request to start setting the recovery step (for example, input to the input device 226). In step S62, the recovery step setting unit 213 generates a list of a plurality of unit actions stored in the unit action database 211. In step S63, the recovery step setting unit 213 generates a list of a plurality of unit processes stored in the recovery process database 212.
[0145] In step S64, the recovery step setting unit 213 displays an input screen for the recovery step (e.g., displayed on the display device 227). The input screen includes: a display unit for the list generated in steps S61 and S62; an input unit for specifying the type of abnormal state to be set as the recovery step; and an input unit for selecting a unit action and a unit process while determining the execution order.
[0146] In step S65, the restoration step setting unit 213 waits for a registration request for the input content of the input screen. In step S66, the restoration step setting unit 213 sets the restoration step based on the input content of the input screen, associates it with the above-mentioned category of the input screen, and stores it in the restoration step database 214. The above is the completion of the restoration step setting procedure.
[0147] (Effects of this embodiment)
[0148] As described above, the robot system 1 comprises: a robot 10; a peripheral device 50, which is arranged around the robot 10; a control unit 112, which at least causes the robot 10 to move based on a program; an interruption unit 113, which interrupts a series of multiple actions performed by the robot 10 in conjunction with the peripheral device 50 based on an action program when an abnormal state occurs in the peripheral device 50; and a simulator 300, which generates a recovery program based on at least the robot state information of the robot 10 at the time point when the action is interrupted due to the occurrence of the abnormal state, and the control unit 112 causes the robot 10 to move relative to the peripheral device 50 based on the recovery program so that the interrupted action based on the action program can be continued.
[0149] According to the robot system 1, when the operation of the robot 10 is interrupted due to the occurrence of an abnormal state, the interrupted operation can be automatically restarted based on the recovery program. In addition, the recovery program based on the robot state information is automatically generated, so even if many recovery programs are not prepared in advance, it is possible to automatically recover from various abnormal states. Therefore, it is effective for rapid recovery from abnormal states.
[0150] As exemplified in the present embodiment, the simulator 300 may generate a recovery program based on at least the robot state information by using a simulation of the robot 10 and the peripheral device 50. In this case, a flexible and highly reliable recovery program can be generated by simulation.
[0151] As exemplified in this embodiment, the simulator 300 may generate a recovery program by reproducing the states of the robot 10 and the peripheral device 50 in simulation based on at least the abnormal state information indicating the abnormal state of the peripheral device 50 and the robot state information. In this case, a more reliable recovery program can also be generated.
[0152] As illustrated in this embodiment, the robot system 1 may also include a category determination unit 215 that determines the category of the abnormal state based on at least the abnormal state information, and the simulator 300 generates a recovery program using simulation based on at least the category of the abnormal state and the robot state information. The logic for determining the category of the abnormal state can be set even if there is no skill in the motion programming of the robot 10. Therefore, by separating the simulator 300 and the category determination unit 215, the construction of the database and logic used in the determination of the category determination unit 215 can be entrusted to the user, and the startup of the robot system 1 becomes easy.
[0153] As exemplified in this embodiment, the category determination unit 215 may determine the recovery process in the peripheral device 50 in addition to the category of the abnormal state based on the abnormal state information, and the peripheral device 50 may perform the recovery process. In this case, the operation of the peripheral device 50 can also be automatically restarted. Therefore, it is more effective to quickly recover from the abnormal state.
[0154] As exemplified in this embodiment, the robot system 1 further includes a recovery step determination unit 216 that determines one or more unit actions representing the actions of the robot 10 that have been determined based on the type of abnormal state, and the simulator 300 includes: an air cut generation unit 312 that generates an air cut action that the robot 10 should act before, after, or before and after the unit action based on at least the unit action and the robot state information and using simulation; and a programming unit 313 that generates a recovery program based on the unit action and the air cut action. In this case, the result requiring accuracy is pre-set as a unit action, and by connecting them using the air cut action, a recovery program requiring high accuracy can be generated with fewer resources.
[0155] As exemplified in the present embodiment, the air cut generation unit 312 may generate an air cut motion using a simulation to avoid the robot 10 from colliding with other objects including the peripheral device 50. In this case, a more reliable recovery program can be generated.
[0156] As exemplified in this embodiment, the simulator 300 may further include an interference check unit 314, which checks in simulation whether the robot 10 collides with other objects including the peripheral device 50 based on the recovery program generated by the programming unit 313, and the control unit 112 may operate the robot 10 based on the recovery program confirmed by the interference check unit 314 as not causing interference. In this case, the reliability of the recovery program is further improved.
[0157] As exemplified in the present embodiment, the action program may also have an interruptible point between one or more of the actions of the robot 10, and the interruption unit 113 interrupts the actions of the robot 10 at the interruptible point set after an abnormal state occurs in the peripheral device 50. In this case, by limiting the state of the robot 10 at the time of interrupting the action to a predetermined interruption point, the influence of the interruption of the action of the robot 10 on the output (production of workpieces, etc.) of the robot system 1 can be suppressed. In addition, limiting the state of the robot 10 at the time of interrupting the action is also effective in facilitating the generation of a recovery program.
[0158] As exemplified in this embodiment, at least the simulator 300 may communicate with the control unit 112 disposed at the edge where the robot 10 and the peripheral device 50 are disposed, via a dedicated network or the Internet. In this case, by disposing the simulator 300 on the network, the simulator 300 can be easily shared by a plurality of control units 112.
[0159] As mentioned above, although embodiment was described, this disclosure is not necessarily limited to the said embodiment, Various changes are possible within the range which does not deviate from the summary.
[0160] [Explanation of symbols]
[0161] 1...Robot system, 10...Robot, 50...Peripheral equipment, 112...Control unit, 113...Interrupt unit, 114...Recovery program acquisition unit, 200...Control auxiliary device, 215...Category determination unit, 216...Recovery step determination unit (unit action determination unit), 217...Recovery program output unit, 300...Simulator (recovery program generation unit), 312...Air cut generation unit, 313...Programming unit, 314...Interference check unit, M31...Recovery processing, R01, R02, R03, R04, R05...Unit action.
Claims
1. A robot system, comprising: robot; Peripheral equipment, arranged around the robot; a control unit that controls the robot based on an action program to perform a plurality of sequential actions in conjunction with the processing performed by the peripheral device; an interruption unit that interrupts the plurality of sequential operations in response to determining that an abnormal state has occurred in the peripheral device; as well as The recovery program generation unit is configured to generate the recovery program through the following steps: correcting model information of the robot and the peripheral device based on at least a reproduction state of the robot and the peripheral device in which the plurality of sequential actions are interrupted; and generating the recovery program using motion simulation of the robot and the peripheral device based on the corrected model information and abnormal state information indicating an abnormal state of the peripheral device, The control unit causes the robot to operate the peripheral device based on the recovery program so that the robot resolves the abnormal state in the peripheral device and the plurality of interrupted sequential operations can be continued.
2. The robot system according to claim 1, wherein: The plurality of sequential actions include setting a workpiece in the peripheral device, The abnormal state includes an abnormal state of the workpiece in the peripheral device, The control unit further causes the robot to re-set the workpiece in the peripheral device based on the restoration program.
3. The robot system according to claim 1, wherein: The plurality of sequential actions include setting a tool in the peripheral device, The abnormal state includes an abnormal state of the tool in the peripheral device, The control unit further causes the robot to reset the tool in the peripheral device based on the recovery program.
4. The robot system according to claim 1, further comprising: a category determination unit that determines the category of the abnormal state based at least on the abnormal state information, The recovery program generation unit generates the recovery program using the operation simulation based on at least the corrected model information and the type of the abnormal state.
5. The robot system according to claim 4, wherein: The category determination unit determines the category of the abnormal state and the recovery process in the peripheral device based on the abnormal state information. The peripheral device executes the recovery process.
6. The robot system according to claim 4, wherein: The recovery program generating unit generating a tentative recovery procedure based on the corrected model information and the category of the abnormal state; executing the motion simulation of the robot and the peripheral device according to the tentative recovery program; as well as The tentative recovery program is corrected based on the result of the motion simulation to generate the recovery program.
7. The robot system according to claim 4, further comprising: a unit action determination unit that selects one or more unit actions from a plurality of unit actions based on the type of the abnormal state, wherein the unit action represents an action of the robot that has been determined, The recovery program generation unit includes: An air-cut generating unit, which generates an air-cut action that the robot should perform before, after, or before and after the one or more unit actions based on at least the corrected model information and the one or more unit actions and using the action simulation; and The programming unit generates the recovery program based on the one or more unit actions and the air-cut action.
8. The robot system according to claim 7, wherein: The unit action determination section further selects the one or more unit actions based on the category of the abnormal state and a program database that associates the plurality of unit actions with the abnormal states of a plurality of categories.
9. The robot system according to claim 7, wherein: The unit action determination section further selects a recovery process from a plurality of predetermined recovery processes in the peripheral device based on the type of the abnormal state, and The peripheral device performs the recovery process so that the plurality of interrupted sequential actions can be continued.
10. The robot system according to claim 9, wherein: The unit operation determination unit further selects the recovery process based on the type of the abnormal state and a process database that associates the plurality of recovery processes with a plurality of types of the abnormal state.
11. The robot system according to claim 7, wherein: The air cut generating unit is further configured to: generating a provisional air-cut action based on the corrected model information and the one or more unit actions; executing the motion simulation of the robot and the peripheral device according to the tentative air cutting motion; and The tentative air-cutting motion is corrected based on the result of the motion simulation to generate the air-cutting motion.
12. The robot system according to claim 11, wherein: The air-cut generating unit further corrects the tentative air-cut action to avoid the robot from colliding with one or more surrounding objects including the surrounding equipment during the air-cut action.
13. The robot system according to claim 11, wherein: The restoration program generation unit further includes an interference check unit that uses the motion simulation to check whether the robot collides with one or more surrounding objects including the peripheral devices based on the restoration program and the model information. The control portion controls the robot based on the recovery program in response to a determination that the robot does not collide with the one or more surrounding objects.
14. The robot system according to any one of claims 1 to 3, wherein: The action program includes one or more predetermined interruptible points set at one or more timings in a plurality of sequential actions of the robot, The interruption unit interrupts the plurality of sequential operations at one of the one or more interruptible points set at a timing after the abnormal state occurs.
15. The robot system according to any one of claims 1 to 3, wherein: At least the restoration program generation unit communicates with a control unit via a communication network, the control unit is configured on an edge side, and the robot and the peripheral devices are configured on the edge side.
16. A method for generating a recovery program, the recovery program being used to enable a robot to resolve an abnormal state occurring in peripheral devices arranged around the robot so as to enable a plurality of interrupted sequential actions to continue, the method comprising: correcting the model information of the robot and the peripheral device based on at least a reproduction state of the robot and the peripheral device in which a plurality of the sequential actions are interrupted; and The recovery program is generated using motion simulation of the robot and the peripheral devices based on the corrected model information and abnormal state information indicating an abnormal state of the peripheral devices.
Citation Information
Patent Citations
Processing machine system capable of removing chip generated by processing
JP2016168661A
Industrial robot system
CN102317044A
Robot system, robot management computer for robot system, and method of managing robot system
CN104339355A