WO2023136062A1 - 制御システム及びプログラム - Google Patents
制御システム及びプログラム Download PDFInfo
- Publication number
- WO2023136062A1 WO2023136062A1 PCT/JP2022/046971 JP2022046971W WO2023136062A1 WO 2023136062 A1 WO2023136062 A1 WO 2023136062A1 JP 2022046971 W JP2022046971 W JP 2022046971W WO 2023136062 A1 WO2023136062 A1 WO 2023136062A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- user program
- robot
- execution
- user
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 40
- 230000001681 protective effect Effects 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 claims description 71
- 230000008569 process Effects 0.000 claims description 61
- 238000004092 self-diagnosis Methods 0.000 claims description 4
- 238000003780 insertion Methods 0.000 description 27
- 230000037431 insertion Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 20
- 230000033001 locomotion Effects 0.000 description 19
- 238000004519 manufacturing process Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 7
- 238000011084 recovery Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 239000000725 suspension Substances 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000036461 convulsion Effects 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 102220039281 rs199473357 Human genes 0.000 description 2
- 210000000707 wrist Anatomy 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000007431 microscopic evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/06—Safety devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/048—Monitoring; Safety
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B9/00—Safety arrangements
- G05B9/02—Safety arrangements electric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
Definitions
- the disclosed technology relates to control systems and programs.
- Robot control has a mechanism for controlling the operation from stop to restart in the event of an emergency stop for some reason.
- Patent Document 1 Japanese Patent Application Laid-Open No. 9-091018
- a signal instructing a backward motion is used to cause the robot to move backward in one-step increments, thereby restarting the operation of the robot.
- Patent Document 2 Japanese Patent Application Laid-Open No. 2011-110629.
- it is determined whether or not the positional error of each detected work target component relative to the normal position is within an allowable range.
- the control related to stopping and restarting the robot was defined in the program for controlling the motion of the robot.
- Patent Document 3 Japanese Patent Application Laid-Open No. 2019-061466
- the system program is a program for realizing basic functions.
- the user program is a general term for programs prepared according to user-specific control applications.
- the user program includes, for example, a program such as an IEC program, which is scanned in its entirety each time it is executed and can output a control command each time it is executed.
- Patent Documents 1 and 2 there is no assumption that a system program and a user program are separately used in a control system, and only robot control as a user program is assumed.
- work robots repeat the same series of actions, so an emergency stop typically caused by torque over is a danger that should not occur during normal operation. It meant that a dangerous situation had occurred, and it was assumed that a human (user) would need to confirm safety and intervene in the recovery operation.
- the present disclosure has been made in view of the above points, and aims to provide a control system and program capable of defining and executing protection stop and restart in a program provided by a controller provider. do.
- a first aspect of the disclosure is a control system comprising user program acquisition means for acquiring a user program for causing a robot to execute a specific work requested by a user and performed by a series of actions; User program execution means for executing a user program, processing for detecting occurrence of a protection stop event in the robot, processing for stopping execution of the user program when the protection stop event occurs, and a predetermined user program system program storage means for storing a system program defining processing for resuming execution of the user program from the return position; and system program execution means for executing the system program.
- the processing for resuming the execution of the user program may be resumed on the condition that a resumption requirement is satisfied.
- the restart requirement is that no failure is detected as a result of the self-diagnosis, and that there is no difference between the position and orientation of the robot after the protection is stopped and the planned position and orientation corresponding to the position and orientation. At least one of the difference being within a reference value may be included.
- system program may further define a process for making the user program available for the resuming data used in the execution of the user program after resuming.
- the restart data may include a stop area, which is an area where execution of the user program is stopped.
- return position data acquiring means for acquiring return position data wherein the return position data is a plurality of return positions in the user program associated with a plurality of stop area candidates of the user program. and the processing for resuming execution of the user program may be processing for resuming execution of the user program according to the return position data.
- a second aspect of the disclosure is a program comprising: user program acquisition means for acquiring a user program for causing a robot to perform a specific work requested by a user and performed by a series of actions; a user program execution means for executing, a process for detecting the occurrence of a protective stop event in the robot, a process for stopping the execution of the user program when the protective stop event occurs, and a predetermined return position of the user program
- One or a plurality of cooperating computers function as system program storage means for storing a system program that defines processing for resuming execution of the user program from the start, and system program execution means for executing the system program.
- protection stop and restart can be defined in the program provided by the controller provider and executed.
- FIG. 3 is a block diagram showing a hardware configuration example of an integrated controller according to the present embodiment;
- FIG. 3 is a diagram showing a functional configuration of an integrated controller;
- FIG. 4 is a diagram schematically showing the contents of control for executing the work of inserting a component into the work plate; It is an example of the control flow when executing the work of inserting a component. It is an example of acquired data of the robot used for judgment of protection stop. It is an example of the control flow of a protection stop judgment.
- FIG. 4 is an example of a source of information that may be used to make restart decisions after a protection outage;
- FIG. 11 is a control flow of restart judgment after protection is stopped;
- FIG. It is a control flow of return by a user program. It is an example of the return position for the control flow when executing the work of inserting a part. It is an example of a return position table.
- FIG. 4 schematically illustrates a case of cable pulling associated with a robot;
- FIG. 4 schematically illustrates a case of cable pulling associated with a robot;
- FIG. 4 is a diagram schematically showing a case in which an externally fixed cable such as an external tool is pulled;
- FIG. 10 is a diagram schematically showing a case where an overload is applied to a robot arm of a robot while the door of a freezer or the like is being opened and closed, and the arm side stops for protection.
- system program of the integrated controller and the user program are used in the control system to define the processing for controlling the robots at the production site.
- processing of the system program and the user program is defined on the assumption that a robot protection stop event occurs.
- system program defines a process for stopping and resuming the execution of the user program when a robot protection stop event occurs. Details of "protection stop” and "protection stop event" will be described later.
- FIG. 1 is a diagram schematically showing an example of the overall configuration of a control system.
- an integrated controller 100 is connected to a tool terminal 200 via a USB or the like, and communicates with various devices and various controllers via a network N.
- the network N includes an upstream information network N1 and a downstream field network N2. It is connected to the management terminal 202, the server device 210, and the like via the information network N1.
- Various controllers of the robot application RA are connected via the field network N2. It may also be connected to other I/O devices and various sensors.
- the robot application RA includes a robot controller 300, an image sensor controller 302, and a gripper controller 304, and these various controllers control the motion of the robot 400.
- the tool terminal 200 is a device that supports preparations necessary for the integrated controller 100 to control the control target.
- the tool terminal 200 includes a development environment (program creation and editing tool, parser, compiler, etc.) for programs executed by the integrated controller 100, parameters (configuration configuration), a function for outputting the generated user program to the integrated controller 100, a function for online correction/change of the user program executed on the integrated controller 100, and the like.
- the management terminal 202 is a terminal used for monitoring and managing the entire production, and is a terminal for managing the integrated controller 100 and the server device 210 .
- a server device 210 a database system, a manufacturing execution system (MES: Manufacturing Execution System), etc. are assumed.
- the manufacturing execution system obtains information from manufacturing devices and facilities to be controlled, monitors and manages the entire production, and can handle order information, quality information, shipping information, and the like.
- a device that provides information-related services may be connected to the information network N1.
- an information system service a process of obtaining information from a manufacturing device or facility to be controlled and performing macroscopic or microscopic analysis is assumed. For example, data mining that extracts some characteristic trends contained in information from controlled equipment and facilities, and machine learning tools for performing machine learning based on information from controlled equipment and machines. be done.
- the robot controller 300 performs trajectory calculation, angle calculation of each axis, and the like according to control commands (position command, speed command, etc.) from the integrated controller 100, and controls the servo motors (Fig. omitted) etc.
- control commands position command, speed command, etc.
- an image sensor 402 associated with the robot 400 is controlled by an image sensor controller 302 and a gripper 404 is controlled by a gripper controller 304 .
- the teaching pendant 310 is used to change the parameters of the robot 400, adjust the operation, and the like.
- FIG. 2 is a block diagram showing a hardware configuration example of the integrated controller 100 according to this embodiment.
- the integrated controller 100 is an arithmetic processing unit called a CPU unit, and includes a processor 102, a chipset 104, a main memory 106, a storage 108, an upper network controller 110, and a USB ( Universal Serial Bus) It includes controller 112 , memory card interface 114 , internal bus controller 120 and field network controller 130 .
- the processor 102 includes a CPU (Central Processing Unit), MPU (Micro Processing Unit), GPU (Graphics Processing Unit), and the like. A configuration having a plurality of cores may be adopted as the processor 102, or a plurality of processors 102 may be arranged. That is, integrated controller 100 has one or more processors 102 and/or processors 102 with one or more cores.
- the chipset 104 realizes the processing of the integrated controller 100 as a whole by controlling the processor 102 and peripheral elements.
- the main memory 106 is composed of a volatile storage device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory).
- the storage 108 is, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive) and other non-volatile storage devices.
- the processor 102 reads various programs stored in the storage 108, develops them in the memory 106, and executes them, thereby realizing control according to the control target and various processes described later.
- the storage 108 contains a user program 30 created according to the manufacturing apparatus and equipment such as the robot 400 to be controlled, a system program 32 for realizing the basic functions of the control system 1, and a system program 32 for making various settings. and setting information 34 are stored.
- the system program 32 is a program provided by the provider of the integrated controller 100 .
- the upper network controller 110 controls data exchange with the server device 210 and the like via the information network N1.
- the USB controller 112 controls data exchange with the tool terminal 200 via a USB connection.
- Memory card interface 114 is configured such that memory card 116 can be attached/detached, and data can be written to memory card 116 and various data (user program, trace data, etc.) can be read from memory card 116 . ing.
- the internal bus controller 120 controls data exchange with the I/O unit 122 attached to the integrated controller 100 .
- the field network controller 130 controls data exchange with the robot application RA via the field network N2.
- FIG. 2 shows a configuration example in which necessary functions are provided by the processor 102 executing a program.
- the main part of the integrated controller 100 may be implemented using hardware conforming to a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer).
- a general-purpose architecture for example, an industrial personal computer based on a general-purpose personal computer.
- OSs Operating Systems
- necessary applications may be executed on each OS.
- the integrated controller 100, the tool terminal 200, and the management terminal 202 are configured as separate units, but all or part of these functions can be integrated into a single device. You may employ
- FIG. 3 is a diagram showing the functional configuration of the integrated controller 100.
- the integrated controller 100 is functionally composed of a program function unit 160 and an upper network interface 1 70 and a field network interface 172 .
- the program function unit 160 is a function unit that integrates means for overall execution control functions related to the user program 30 and the system program 32 .
- the program function unit 160 has user program acquisition means 162 , user program execution means 164 , system program storage means 166 and system program execution means 168 .
- the program function unit 160 also has a function of processing data stored in a memory (not shown) and processing results of the user program execution means 164 or the system program execution means 168 into data for output to the user. .
- the host network interface 170 mediates the exchange of data with devices connected via the information network N1.
- the field network interface 172 mediates exchange of data with various robots 400 connected via the field network N2.
- the user program acquisition means 162 acquires the user program 30 from various devices capable of holding or inputting the user program 30 by some means.
- the following items correspond to the user program acquisition means 162 .
- the control system 1 acquires the user program 30 from the tool terminal 200 , it is the hardware and software of the communication interface with the tool terminal 200 .
- the control system 1 has an editing function for the user program 30 and inputs the user program 30 from an input device such as a keyboard, it is the input device and related software.
- the control system 1 acquires the user program 30 from the library of the user program 30 stored in the server device 210 or the like via the information network N1, the hardware for network communication and the user program 30 It is the software involved in the acquisition.
- the system program storage means 166 is means for storing the system program 32, and storage means capable of storing programs such as ROM and memory are used.
- the user program execution means 164 is means for executing the user program 30.
- the system program executing means 168 is means for executing the system program 32 .
- the user program execution means 164 and the system program execution means 168 are as follows.
- the control system 1 includes hardware such as a general-purpose processor and ASIC, and software for managing resources and timing for executing user programs. Also, the entities of the user program execution means 164 and the system program execution means 168 may be the same or may be entities different from each other.
- the system program 32 is a program for realizing the basic functions of the control system 1, and in this embodiment, a part of the system program 32 defines various processes related to protection stop.
- the various processes related to the protection stop include a process of detecting the occurrence of a protection stop event in the robot 400 (occurrence detection process), a process of stopping the execution of the user program 30 when the protection stop event occurs (execution stop process), and a process (resume process) for resuming execution of the user program 30 from a predetermined return position of the user program 30 .
- the system program 32 includes a provision for processing to stop execution of the user program 30 when a protection stop event occurs. This stops the motion of the robot 400 when a protection stop event occurs. Further, a process of braking the motion of the robot 400 to quickly stop the motion of the robot 400, a process of maintaining the position and orientation of the stopped robot 400, and the like may be added.
- Protection stop in this embodiment will be described. “Protective stop” does not damage itself or surrounding objects when the robot 400 comes into contact with surrounding objects, when there is a risk of unplanned contact, or when a high load occurs in the operation of the robot 400. For the purpose of this, it refers to stopping the operation of the robot 400 . Surrounding objects include the human body.
- a decision to stop the movement of the robot 400 when it comes into contact with a surrounding object can be made based on the detection result of the magnitude of the force that the robot received due to the contact.
- the value of the torque applied to the motor that drives the joints of the robot or the detected value of the force sensor provided in the robot 400 can be used. The same applies to the decision to stop the operation when a high load occurs.
- the decision to stop the operation when the robot 400 is likely to make unplanned contact with surrounding objects can be made based on the detection results of a sensor such as a camera that monitors the situation around the robot.
- a "protection stop event” is an event that causes a protection stop.
- a protective stop event is when the robot receives a force greater than or equal to a predetermined amount, or when there is an object around the robot that may make unplanned contact.
- the robot control of the control system 1 is performed by, for example, (A) sending a command from the integrated controller 100 to the robot controller 300 to execute a script, or (B) sending a command directly from the integrated controller 100 to the robot 400 for control. 4 and 5, respectively.
- each task executed by the integrated controller 100 is assigned a priority as described in Patent Document 3, and is triggered every control cycle T1.
- an input/output refresh process (“O/I" in FIGS. 4 and 5, hereinafter referred to as O/I process) is executed to update input values and control commands with fields.
- a program for performing input/output refresh processing belongs to the system program 32 .
- a task with a priority next to the first task 10 is the second task 18 .
- the second task 18 a program is executed according to the user's control purpose.
- the second task 18 includes a sequence process 12 that executes a sequence program, a first robot control program process 14 (RP14) that executes a first robot control program, and a motion control program that executes a motion control program. and processing 16 (MC16).
- a sequence program, a first robot control program, and a motion control program belong to the user program 30 .
- sequence processing 12 a sequence program is executed from the beginning to the end in one control period T1.
- the sequence program for example, is in charge of controlling devices existing around the robot, such as a transport device.
- the first robot control program is responsible for controlling the robot.
- the sequence program executed in the sequence processing 12 may control the robot without providing the first robot control program processing 14 .
- the motion control program is, for example, a program for calculating numerical values such as position, velocity, acceleration, jerk, angle, angular velocity, angular acceleration, and angular jerk as control commands for an actuator such as a servomotor. .
- the first robot control program process 14 of the second task generates a script execution command (hereinafter also simply referred to as command).
- the generated script execution command is sent to the robot controller 300 in the O/I processing of the first task in the next control period T1b.
- a scheduler for controlling the execution timing of each program shown in the figure, a program for monitoring the occurrence of a protection stop event, and the like are executed in the background.
- the script execution command may be sent not as part of the O/I process, but at any timing such as immediately after the first robot control program process 14 is executed.
- the robot controller 300 executes control every control period T1.
- the command is received (20), the script of the received command is executed (22), and an execution completion notification is sent to the integrated controller 100 (24).
- the control cycle T1 of the robot controller 300 preferably has the same length as the control cycle T1 of the integrated controller 100 and is synchronized with it, but the cycles may have different lengths or may be asynchronous.
- the control period of the robot controller 300 may be set to a control period T2 that is shorter (for example, half the length) than the control period T1 of the integrated controller, and the script may be executed every control period T2. Then, smoother robot control can be performed.
- the script in this case is of a scale that can be completed within the control period T2. Also in this case, communication between the integrated controller 100 and the robot controller 300 is performed every control cycle T1.
- a third task 26 is added as a task executed by the integrated controller 100.
- FIG. The third task 26 has a lower priority than the second task 18 and is executed in a period twice as long as the control period T1.
- a second robot control program is executed.
- a second robot control program belongs to the user program 30 .
- the second robot control program is a program responsible for controlling a part of the robot 400, such as the gripper.
- the contents of the second robot control program correspond to the script executed by the robot controller 300 in case (A).
- a command for the gripper of the robot 400 generated in the third task process 26 is sent to the robot controller 300 as part of the O/I process.
- the command generated in the third task process 26 is not transmitted in the O/I process of code (1) in the control cycle T1b in which the execution of the third task process is not completed, and is not transmitted in the control cycle T1c after the execution is completed. is transmitted in O/I processing of code (2) in . Also, in the first robot control program executed in the second task 18, contents corresponding to the script executed by the robot controller 300 in the case of (A) are specified, and the command to the robot 400 is specified by executing the first robot control program. may be generated.
- Either of the robot control methods (A) and (B) may be used alone, or may be used according to the part to be controlled.
- each joint of the robot arm can be controlled by method (A)
- the opening and closing of the gripper can be controlled by method (B).
- Methods (A) and (B) may be used separately in the same task, for example, the second task 18 .
- a protection stop event may occur during control of robot motion.
- the system program 32 defines the processing when a protection stop event occurs.
- FIG. 6 is a diagram schematically showing the contents of control for executing the work of inserting a component into the work plate. As shown in FIG. 6, an operation of inserting a component A arranged on a tray Ra into a hole at an insertion position Pi of a work plate Rb is assumed. Insertion is divided into steps of temporary insertion and permanent insertion.
- FIG. 7 is an example of a control flow when executing work for inserting a part.
- the image sensor 402 captures an image of the tray Ra, and the component position Pa of the component A is acquired.
- component position means information representing the position and orientation of a component.
- the gripper 404 is moved to a position where the part A at the obtained part position Pa can be gripped, and the gripper 404 grips the part A.
- the gripped component A is moved to the insertion position Pi and pushed into the hole (corresponding to a temporary insertion step).
- Temporary insertion is an operation of moving the part A to the insertion start position Pi and then pushing the part A into the hole until a part of the part A is in the hole and the part A does not drop even if the gripper 404 is opened. be. Since the gripper 404 grips the side surface of the component A, the component A cannot be deeply inserted as it is, so temporary insertion is necessary.
- the gripper 404 is opened, moved to the start position (Pr) of final insertion behind the insertion position Pi of the work plate Rb, and closed.
- the closed gripper 404 pushes the part A in the temporarily inserted state (corresponding to the final insertion step), and completes the final insertion by pushing it to a predetermined depth or until it reaches the bottom of the hole.
- the gripper 404 is moved to a predetermined retraction position behind the insertion position Pi of the work plate Rb, and the work is finished. Note that the control of S10 to S20 is an example, and other control may be performed.
- FIG. 8 is an example of acquired data of the robot 400 used for the judgment of protection stop.
- the robot controller 300 acquires force information from the force sensors of the robot 400 and acquires current values from current detectors of the motors of each axis of the robot 400 .
- the integrated controller 100 acquires haptic information and current values from the robot controller 300 as part of the O/I processing of FIG.
- FIG. 9 is an example of a control flow for determining whether to stop protection.
- the control flow for protection stop determination is executed in the system program 32 .
- the setting information 34 of the integrated controller 100 includes the threshold value for the force information related to the protection stop, the threshold value for the torque level related to the protection stop, and the conversion of the current value into the torque as the information necessary for the control of the protection stop determination.
- a torque constant is stored for
- S32 it is determined whether or not the acquired haptic information is equal to or greater than a threshold determined for the haptic information. If it is equal to or greater than the threshold, the process proceeds to S38 (protection stop), and if it is not equal to or greater than the threshold, the process proceeds to S34.
- the robot 400 is stopped for protection. Protection stop is executed by stopping the user program 30 . When the execution of the user program 30 is stopped, no further movement commands will be issued, so the robot 400 will not move according to new movement commands.
- the system program 32 may be added with a process of braking the motion of the robot 400 in order to quickly stop the motion of the robot 400, a process of maintaining the position and orientation of the stopped robot 400, and the like.
- FIG. 10 shows examples of sources of information that may be used to make restart decisions after a protection stop.
- Inputs from each information source to the "restart judgment" of the system program 32 include detection results from “image processing”, gripper information from “grip control", position of the robot 400 from “robot control”, and force information/torque.
- Information current value
- result of self-diagnosis debug information, etc.
- the restart determination process described below is one aspect of the process for restarting the execution of the user program 30 from the predetermined return position of the user program 30 by the system program 32 .
- the condition for resuming the process of resuming the execution of the user program is that the resuming requirements are satisfied.
- the system program 32 defines a process that enables the user program 30 to use the resuming data that will be used in the execution of the user program 30 after resuming.
- the restart data may include a stop area, which is an area where the execution of the user program 30 has stopped.
- FIG. 11 is a control flow for restart judgment after protection is stopped.
- various types of diagnostic information such as gripper diagnostic information, image sensor diagnostic information (detection results), and robot diagnostic information are acquired.
- S52 it is determined whether or not there is a failure using the acquired diagnostic information.
- the determination of S52 is an example of "no failure detected as a result of self-diagnosis" in the restart requirements of the present disclosure. If it is determined that there is a failure, the process proceeds to S64, and if it is determined that there is no failure, the process proceeds to S54. Whether or not there is a failure may be determined based on whether any of the various diagnostic information includes a diagnosis result of failure. In addition, a temporary failure that does not hinder the continuation of the operation of the robot 400, such as when a communication error occurs but normal communication can be resumed immediately, is treated as "no failure".
- debug information at the time of stop is acquired.
- the debug information includes the trajectory planned by the user program 30 that was being executed at the time of stop.
- an abnormal event it is determined whether or not an abnormal event other than a failure has occurred in the debug information that would hinder recovery from the protection stop.
- An example of an abnormal event is an event that it is detected that an operation target is damaged. If it is determined that an abnormal event has occurred, the process proceeds to S64, and if it is determined that an abnormal event has not occurred, the process proceeds to S58.
- the current position and orientation are compared with the planned trajectory, and it is determined whether or not the current position and orientation deviate from the trajectory planned by the user program 30. If it is determined that the vehicle has not deviated, the process proceeds to S62, and if it is determined that the vehicle has deviated, the process proceeds to S64. It should be noted that whether or not there is deviation may be determined by whether or not the current position and orientation deviate from the planned trajectory by a reference value or more.
- the planned trajectory is the position and orientation of the robot 400 on the planned trajectory. Preferably, the determination is made by comparing the last commanded position being executed and the detected position.
- the determination in S60 is an example of "the divergence between the position and orientation of the robot after the protection stop and the planned position and orientation corresponding to the position and orientation are within a reference value" in the restart requirements of the present disclosure. .
- the cause of the protection suspension has been resolved as a restart requirement for obtaining a judgment that it is possible to restore. For example, when a protective stop occurs due to force information, torque, or a high load on the gripper, a state in which the high load has been eliminated may continue for a certain period of time or longer as a restart requirement.
- the detection result indicates that the robot 400 is likely to make unplanned contact with an object in the surroundings and the protection stop occurs, the detected object is no longer detected and the unplanned contact is detected. It may be added as a requirement for resumption that it is no longer likely to occur.
- a stop area is an area in the user program 30 that contains within the area the steps of the instructions of the user program 30 that were being executed when the protection stop occurred.
- a stop area is set as an area corresponding to one or a series of elemental motions of the robot suitable to be grasped as a stop position. For example, if the execution of the user program 30 corresponding to the provisional insertion operation and the user program 30 corresponding to the final insertion operation is stopped in the area, the user program 30 can be It can be regarded as corresponding to the position at which execution in the program 30 was stopped.
- the notification is made, for example, by storing data specifying the stop area in a memory area accessible also from the user program 30 .
- the restart data includes the time when the execution of the user program 30 was stopped, the position and orientation of the robot 400 when the execution of the user program 30 was stopped, and the time when the execution of the user program 30 was stopped.
- the torque applied to the robot 400, the detection value of the force sensor, and the detection result of the image data including the surrounding objects captured when or after the execution of the user program 30 is stopped may also be included.
- FIG. 12 is a control flow by the user program 30 after returning.
- FIG. 13A is the return position for the control flow when executing an operation to insert a part.
- FIG. 13B is an example of a return position table.
- the stop area is acquired.
- S74 S74A, S74B
- the image sensor 402 detects the position of the dropped component A.
- the gripper 404 grips the part A and controls it to put it in the sorting box, and returns by shifting to A in FIG. 13A.
- the return position of the user program 30 is given to the system program 32 as a variable storing the address for return, for example.
- control flow by the user program 30 after returning is not limited to the above flow.
- the part A may engage with the hole and not move any further, and if the part A is further pushed in at this time, it may lead to a protective stop.
- the temporary insertion operation may be redone after the component A is pulled out from the hole.
- the part A may be once pulled out and then returned to the sorting box, and the returned part A may be gripped again and the temporary inserting operation may be redone.
- the part A By inserting a compliance module into the joint between the robot arm and the gripper or by providing an elastic member layer on the gripping surface of the gripper, the part A can be moved by being guided by the chamfering of the edge of the part A or the hole. , even if there is a slight positional deviation between the part A and the hole, the temporary insertion is more likely to succeed from the first time, and the success rate when the temporary insertion is repeated is also increased. In some cases, it is possible to succeed just by redoing the temporary insertion operation in this way.
- the fingertip of the gripper that was pushing the part A is temporarily released from the part A, and the main insertion operation is restarted. If the protective stop is repeated even after retrying the actual insertion operation a predetermined number of times, the component A may be gripped, pulled out from the hole, returned to the sorting box and gripped again, and the temporary insertion operation may be resumed.
- the user program 30 has a single return position, and the user program 30 is responsible for the operation flow after return. By making a selection, the control operation to be performed by the user program 30 after returning may be changed. Selection of the return position is performed, for example, according to the return position table of FIG. 13B.
- the return position table indicates the return position corresponding to the post-stop parts state for each of the stop area Pg1 and the stop area Pg2, which are candidates for the stop area.
- the return position table is given to the integrated controller 100 together with the user program 30 and made accessible from the system program 32 .
- the return position table is accompanied by information on how to identify the post-stop component state (part non-dropping or component drop).
- a method of identifying the state of the component after stopping is to query an image processing unit that processes the image of the image sensor 402, for example, and obtain a judgment result as to whether the component is not dropped or dropped. Further, depending on the contents of the operation defined by the user program 30, there may be cases where a return position table in which the return position is determined according to the stop zone without case classification such as the state of parts after stopping may be sufficient.
- a return position table is an example of return position data of the present disclosure.
- the functional configuration of the integrated controller 100 in FIG. 3 may further include return position data acquisition means for acquiring return position data to acquire the information of the return position table.
- the position at the beginning of the stop area of the user program 30 can be used as the return position. good. Further, when the operation is stopped based on the determination, it may be decided to execute the following step without going back from the step at which the user program 30 stopped.
- a protection stop event For example, when a temporary overload occurs due to cable pulling, a protective shutdown event may occur even if there is no contact in operation. Also, due to component variations, a protective outage event may occur in cases where the same parameter operation is successful or unsuccessful just for different target objects. In this case, basically, it is assumed that if the combination of parts is changed, it will succeed.
- the robot 400 is accompanied by a cable.
- 14 schematically illustrate the case of cable pulling associated with robot 400.
- FIG. In (A) of FIG. 14A the cable is pulled by the operation of the robot 400, and a force in a direction opposite to or in a direction similar to the operation of the robot 400 or the movement of the robot hand is detected, and the protection is stopped. Occur.
- the force in this direction can be detected by a wrist force sensor or the like. Cable pulling occurs when the robot arm extends. This pull can be calculated with a model of the robot 400 itself. In this case, as a return method, as shown in FIG. 14B, it is assumed that the robot hand is moved in the direction in which the robot arm is bent, the cable is loosened, and then the operation is resumed.
- the cable is pulled by an externally fixed cable such as an external tool.
- an externally fixed cable such as an external tool.
- the wrist force sense If a force overload is detected in the opposite direction of movement, it is determined that the cable is overloaded by the tool Ta.
- the tool Ta is switched to the arm that is not stopped.
- the robot 400 is restarted and the hand of the robot 400 is moved in the direction of loosening the cable.
- the loosening direction is the opposite direction to the original moving direction, and is the direction toward the controller Tb.
- FIG. 16 a case can be assumed in which an overload is applied while the door of a freezer or the like is opened by the robot arm of the robot 400 and the door is slightly opened, causing the robot 400 to stop for protection.
- an AGV Automatic Guide
- the door is closed by moving the ed vehicle (automatic guided vehicle) in the direction in which the door closes, and after that, the AGV is repositioned so that the load on the arm is reduced, and then the operation to open the door is resumed.
- LA Laboratory Automation
- the viewpoint of minimizing the temperature change in the freezer is more important than the task of opening the door. There is Therefore, it is assumed that only the AGV side is moved and the door is first closed for return control.
- protection stop and restart can be specified in the system program 32 provided by the provider of the integrated controller 100 and executed.
- control system 1 can be implemented in the following forms in the embodiment.
- the control system 1 can be implemented as at least one of (A1) and (A2) below as a device provided with each means, or as a plurality of cooperating devices provided with each means as a whole.
- the integrated controller 100 may instruct the robot controller 300 to execute a script that the robot controller 300 executes.
- the program executed by the integrated controller 100 for determining script execution instructions corresponds to the user program 30 .
- the script executed by the robot controller 300 is also written to the user program 30 if it is created to cause the robot to perform all or part of a specific work requested by the user and performed by a series of actions. Applicable. It should be noted that if the script is created only for a general element operation such as "opening or closing" the gripper 404, it does not correspond to the user program 30.
- the system program 32 is stored only in the integrated controller 100, and is not limited to the manner in which it is executed. In both cases of (A1) and (A2) of the above embodiments, the system program 32 may be stored and executed collectively by either the integrated controller 100 or the robot controller 300, or shared by both. In both cases of (A1) and (A2) of the above embodiments, the robot controller 300 executes an operation that realizes a command determined by the integrated controller 100 or a command generated by executing a script in the robot controller 300. Each motor of the robot 400 is driven as follows. Also, the control system 1 may be a device having both the functions of the integrated controller 100 and the functions of the robot controller 300 .
- control system 1 can be implemented as a system that cooperates with the robot 400 via a wide area network.
- Execution means 164, system program storage means 166, system program execution means 168) may be located in one or more computers connected to the Internet.
- various processors other than the CPU may execute the processing executed by the CPU reading the software (program) in the above embodiment.
- the processor is a PLD (Programmable Logic Device) whose circuit configuration can be changed after manufacturing, such as an FPGA (Field-Programmable Gate Array), and an ASIC (Application Specific Integrated Circuit) to execute recognition processing.
- a dedicated electric circuit or the like which is a processor having a specially designed circuit configuration, is exemplified.
- the processing may be performed on one of these various types of processors, or on a combination of two or more processors of the same or different type (eg, multiple FPGAs and combinations of CPUs and FPGAs, etc.). can be run with More specifically, the hardware structure of these various processors is an electric circuit in which circuit elements such as semiconductor elements are combined.
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Numerical Control (AREA)
- Safety Devices In Control Systems (AREA)
- Programmable Controllers (AREA)
- Manipulator (AREA)
Abstract
保護停止及び再開をコントローラの提供者によって提供されるプログラムに規定し、実行することができる。 制御システムは、ユーザが要求する作業であって一連の動作によって遂行される特定の作業をロボットに実行させるためのユーザプログラムを取得するユーザプログラム取得手段と、前記ユーザプログラムを実行するユーザプログラム実行手段と、前記ロボットにおける保護停止事象の発生を検知する処理、前記保護停止事象が発生した場合に前記ユーザプログラムの実行を停止させる処理、及びあらかじめ決められたユーザプログラムの復帰位置から前記ユーザプログラムの実行を再開させるための処理を規定するシステムプログラムを記憶するシステムプログラム記憶手段と、前記システムプログラムを実行するシステムプログラム実行手段とを備える。
Description
開示の技術は、制御システム及びプログラムに関する。
生産現場のFA(Factory Automation)の分野においては、自動化を担うロボットを制御するための種々の技術が開発されている。ロボット制御には、何らかの要因により緊急停止した場合に、停止から再開までの動作を制御するための仕組みがある。
例えば、ロボットが緊急停止した場合の運転再開時間を短縮するためのロボット制御装置に関する技術がある(特許文献1:特開平9-091018号公報参照)。この技術では、後戻りの動作を指令する信号によって、ロボットに1ステップ刻みで後退する動作をさせ、ロボットの運転を再開させることをしている。
また、作業対象部品などの位置ずれに起因するいわゆる「チョコ停」の未然防止を可能とするロボット制御方法に関する技術がある(特許文献2:特開2011-110629号公報参照)。この技術では、検出された作業対象部品それぞれの正常位置に対する位置誤差が許容範囲内か否かを判定している。
ここで、従来技術に挙げたようなロボット制御では、ロボットの停止及び再開に係る制御は、当該ロボットの動作を制御するためのプログラムに定められていた。
しかしながら、昨今の生産現場のFAにおいては、画像センサやグリッパといった、それ自体が制御の対象となる複数のパーツを組み合わせたロボットである場合や、多数のロボットが連携しながら作業を行う場合があり、高度化している。このような高度化したFAにおいては、上位の統合コントローラによって統合した制御を行い、個々のロボットの制御はロボットコントローラで行うことが想定される。統合コントローラを用いた制御システムにおいて、システムプログラムと、ユーザプログラムという異なるプログラムが規定される。
例えば、単一の制御装置上で実行形式の異なる複数種類のプログラムを効率的に動作できる構成を提供する制御装置に関する技術がある(特許文献3:特開2019-061466号公報参照)。特許文献3においては、システムプログラムは、基本的な機能を実現するためのプログラムである。特許文献3においては、ユーザプログラムは、ユーザに固有の制御用途に応じて用意されたプログラムの総称である。ユーザプログラムには、例えば、IECプログラムのような実行毎に全体がスキャンされ、実行毎に制御指令を出力できるプログラムも包含する。
特許文献1及び特許文献2のような従来技術では、制御システムにおいてシステムプログラムとユーザプログラムとを使い分ける想定はなく、あくまでユーザプログラムとしてのロボット制御が想定されていた。また、従来のFAでは、作業用のロボットというのは
一連の同じ動作を繰り返すものであり、したがってトルクオーバーを代表的な原因とする緊急停止が発生したということは正常動作時には生じないはずの危険な状況が生じたことを意味し、ヒト(ユーザ)による安全確認と復帰動作への介入が必要、という前提であった。
一連の同じ動作を繰り返すものであり、したがってトルクオーバーを代表的な原因とする緊急停止が発生したということは正常動作時には生じないはずの危険な状況が生じたことを意味し、ヒト(ユーザ)による安全確認と復帰動作への介入が必要、という前提であった。
しかし、システムプログラムとユーザプログラムとを用いる制御システムにおいて、従来技術のような停止及び再開の制御に関する技術を適用することはできない。システムプログラムによってロボットを停止させる場合、プログラム相互の処理の整合等を考慮して、ユーザプログラムの実行が停止させられることになるため、ユーザプログラムに停止及び再開のための動作を規定することはできないからである。また、従来のように、停止後の動作の再開のための例外処理にユーザを関与させる設計にしてしまうと、停止のたびにユーザの関与が発生し、ユーザにとって煩雑である。また、特許文献3におけるシステムプログラムの制御態様は優先度変更に係る処理の実行手段に留まっており、他の制御については規定されていない。
本開示は、上記の点に鑑みてなされたものであり、保護停止及び再開をコントローラの提供者によって提供されるプログラムに規定し、実行することができる制御システム及びプログラムを提供することを目的とする。
開示の第1態様は、制御システムであって、ユーザが要求する作業であって一連の動作によって遂行される特定の作業をロボットに実行させるためのユーザプログラムを取得するユーザプログラム取得手段と、前記ユーザプログラムを実行するユーザプログラム実行手段と、前記ロボットにおける保護停止事象の発生を検知する処理、前記保護停止事象が発生した場合に前記ユーザプログラムの実行を停止させる処理、及びあらかじめ決められたユーザプログラムの復帰位置から前記ユーザプログラムの実行を再開させるための処理を規定するシステムプログラムを記憶するシステムプログラム記憶手段と、前記システムプログラムを実行するシステムプログラム実行手段と、を備える。
上記第1態様において、前記ユーザプログラムの実行を再開させる処理は、再開要件が充足されていることを再開の条件とするようにしてもよい。
上記第1態様において、前記再開要件は、自己診断の結果として不具合の発生が検出されなかったこと及び保護停止後のロボットの位置姿勢と当該位置姿勢に対応する計画された位置姿勢との間の乖離が基準値以内であることの少なくともいずれかを含むようにしてもよい。
上記第1態様において、前記システムプログラムは、さらに、前記ユーザプログラムの再開後の実行において利用される再開用データを前記ユーザプログラムから利用可能とする処理を規定するようにしてもよい。
上記第1態様において、前記再開用データは、前記ユーザプログラムにおける実行の停止が発生した区域である停止区域を含むようにしてもよい。
上記第1態様において、復帰位置データを取得する復帰位置データ取得手段をさらに備え、前記復帰位置データは、前記ユーザプログラムの複数の停止区域の候補に対応付けられた前記ユーザプログラムにおける複数の復帰位置を含み、前記ユーザプログラムの実行を再開させる処理は、前記復帰位置データにしたがって前記ユーザプログラムの実行を再開させる処理であるようにしてもよい。
開示の第2態様は、プログラムであって、ユーザが要求する作業であって一連の動作によって遂行される特定の作業をロボットに実行させるためのユーザプログラムを取得するユーザプログラム取得手段、前記ユーザプログラムを実行するユーザプログラム実行手段、前記ロボットにおける保護停止事象の発生を検知する処理、前記保護停止事象が発生した場合に前記ユーザプログラムの実行を停止させる処理、及びあらかじめ決められたユーザプログラムの復帰位置から前記ユーザプログラムの実行を再開させるための処理を規定するシステムプログラムを記憶するシステムプログラム記憶手段、並びに前記システムプログラムを実行するシステムプログラム実行手段として1又は連携する複数のコンピュータを機能させる。
本開示の制御システム及びプログラムによれば、保護停止及び再開をコントローラの提供者によって提供されるプログラムに規定し、実行することができる。
以下、本開示の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
本実施形態では、制御システムにおいて統合コントローラのシステムプログラムと、ユーザプログラムとを用いて、生産現場のロボットを制御する処理を規定する。本実施形態では、ロボットの保護停止事象が発生した場合を想定して、システムプログラム及びユーザプログラムの処理を規定する。本実施形態では、システムプログラムに、ロボットの保護停止事象が発生した場合にユーザプログラムの実行の停止及び再開を行う処理を規定する。「保護停止」及び「保護停止事象」の詳細については後述する。
(制御システムの全体構成例)
図1は制御システムの全体構成例を模式的に示す図である。図1に示すように、制御システム1において、統合コントローラ100は、ツール端末200とはUSB等で接続され、ネットワークNを介して各種装置及び各種コントローラとの通信を行う。ネットワークNは、上流側の情報ネットワークN1と、下流側のフィールドネットワークN2とがある。情報ネットワークN1を介しては、管理端末202、及びサーバ装置210等と接続される。フィールドネットワークN2を介しては、ロボットアプリケーションRAの各種コントローラと接続される。また、その他のI/Oデバイス及び各種センサと接続されてもよい。ロボットアプリケーションRAには、ロボットコントローラ300、画像センサコントローラ302、及びグリッパコントローラ304を含み、これらの各種コントローラによりロボット400の動作の制御を行う。なお、統合コントローラ100が、本開示の技術の「コントローラ」の一例である。
図1は制御システムの全体構成例を模式的に示す図である。図1に示すように、制御システム1において、統合コントローラ100は、ツール端末200とはUSB等で接続され、ネットワークNを介して各種装置及び各種コントローラとの通信を行う。ネットワークNは、上流側の情報ネットワークN1と、下流側のフィールドネットワークN2とがある。情報ネットワークN1を介しては、管理端末202、及びサーバ装置210等と接続される。フィールドネットワークN2を介しては、ロボットアプリケーションRAの各種コントローラと接続される。また、その他のI/Oデバイス及び各種センサと接続されてもよい。ロボットアプリケーションRAには、ロボットコントローラ300、画像センサコントローラ302、及びグリッパコントローラ304を含み、これらの各種コントローラによりロボット400の動作の制御を行う。なお、統合コントローラ100が、本開示の技術の「コントローラ」の一例である。
ツール端末200は、統合コントローラ100が制御対象を制御するために必要な準備を支援する装置である。具体的には、ツール端末200は、統合コントローラ100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、統合コントローラ100及び統合コントローラ100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成されたユーザプログラムを統合コントローラ100へ出力する機能、統合コントローラ100上で実行されるユーザプログラムをオンラインで修正・変更する機能、などを提供する。
管理端末202は、生産全体の監視及び管理に用いられる端末であり、統合コントローラ100及びサーバ装置210を管理する端末である。サーバ装置210としては、データベースシステム、製造実行システム(MES:Manufacturing Execution System)などが想定される。製造実行システムは、制御対象の製造装置や設備からの情報を取得して、生産全体を監視及び管理するものであり、オーダ情報、品質情報、出荷情報などを扱うこともできる。これに限らず、情報系サービスを提供する装置を情報ネットワークN1に接続するようにしてもよい。情報系サービスとしては、制御対象の製造装置や設備からの情報を取得して、マクロ的またはミクロ的な分析などを行う処理が想定される。例えば、制御対象の製造装置や設備からの情報に含まれる何らかの特徴的な傾向を抽出するデータマイニングや、制御対象の設備や機械からの情報に基づく機械学習を行うための機械学習ツールなどが想定される。
ロボットコントローラ300は、統合コントローラ100からの制御指令(位置指令または速度指令など)にしたがって、軌跡計算及び各軸の角度計算などを行うとともに、計算結果にしたがって、ロボット400を構成するサーボモータ(図省省略)などを駆動する。また、ロボット400に付随する画像センサ402は画像センサコントローラ302で制御され、グリッパ404はグリッパコントローラ304で制御される。また、ティーチングペンダント310によりロボット400のパラメータの変更、動作の調整等が行われる。
(統合コントローラ100のハードウェア構成例)
次に、本実施形態に係る統合コントローラ100のハードウェア構成例について説明する。図2は、本実施形態に係る統合コントローラ100のハードウェア構成例を示すブロック図である。
次に、本実施形態に係る統合コントローラ100のハードウェア構成例について説明する。図2は、本実施形態に係る統合コントローラ100のハードウェア構成例を示すブロック図である。
図2に示すように、統合コントローラ100は、CPUユニットと称される演算処理部であり、プロセッサ102と、チップセット104と、メインメモリ106と、ストレージ108と、上位ネットワークコントローラ110と、USB(Universal Serial Bus)
コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ120と、フィールドネットワークコントローラ130とを含む。
コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ120と、フィールドネットワークコントローラ130とを含む。
プロセッサ102は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などで構成される。プロセッサ102としては、複数のコアを有する構成を採用してもよいし、プロセッサ102を複数配置してもよい。すなわち、統合コントローラ100は、1または複数のプロセッサ102、及び/または、1または複数のコアを有するプロセッサ102を有している。チップセット104は、プロセッサ102及び周辺エレメントを制御することで、統合コントローラ100全体としての処理を実現する。メインメモリ106は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで
構成される。ストレージ108は、例えば、HDD(Hard Disk Drive)やSSD(Solid
State Drive)などの不揮発性記憶装置などで構成される。
構成される。ストレージ108は、例えば、HDD(Hard Disk Drive)やSSD(Solid
State Drive)などの不揮発性記憶装置などで構成される。
プロセッサ102は、ストレージ108に格納された各種プログラムを読出して、メモリ106に展開して実行することで、制御対象に応じた制御、及び、後述するような各種処理を実現する。ストレージ108には、制御対象のロボット400等の製造装置や設備に応じて作成されるユーザプログラム30と、制御システム1の基本的な機能を実現するためのシステムプログラム32と、各種設定をするための設定情報34とが格納される。システムプログラム32は、統合コントローラ100の提供者によって提供されるプログラムである。
上位ネットワークコントローラ110は、情報ネットワークN1を介して、サーバ装置210などとの間のデータのやり取りを制御する。USBコントローラ112は、USB接続を介してツール端末200との間のデータのやり取りを制御する。
メモリカードインターフェイス114は、メモリカード116が着脱可能に構成されており、メモリカード116に対してデータを書込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読出すことが可能になっている。
内部バスコントローラ120は、統合コントローラ100に装着されるI/Oユニット122との間のデータのやり取りを制御する。フィールドネットワークコントローラ130は、フィールドネットワークN2を介したロボットアプリケーションRAとの間のデータのやり取りを制御する。
図2には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。あるいは、統合コントローラ100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
また、図2に示す制御システム1においては、統合コントローラ100、ツール端末200及び管理端末202がそれぞれ別体として構成される例としているが、これらの機能の全部または一部を単一の装置に集約するような構成を採用してもよい。
(統合コントローラ100の機能的構成例)
図3は、統合コントローラ100の機能的な構成を示す図である。統合コントローラ100は、機能的には、プログラム機能部160と、上位ネットワークインターフェイス1
70と、フィールドネットワークインターフェイス172とを含む。プログラム機能部160は、ユーザプログラム30及びシステムプログラム32に関する実行制御全般の機能を担う手段をまとめた機能部である。プログラム機能部160は、ユーザプログラム取得手段162と、ユーザプログラム実行手段164と、システムプログラム記憶手段166と、システムプログラム実行手段168と、を有する。また、プログラム機能部160は、メモリ(図示省略)に格納されるデータ、及びユーザプログラム実行手段164又はシステムプログラム実行手段168による処理結果などをユーザなどへ出力するためのデータに加工する機能も担う。
図3は、統合コントローラ100の機能的な構成を示す図である。統合コントローラ100は、機能的には、プログラム機能部160と、上位ネットワークインターフェイス1
70と、フィールドネットワークインターフェイス172とを含む。プログラム機能部160は、ユーザプログラム30及びシステムプログラム32に関する実行制御全般の機能を担う手段をまとめた機能部である。プログラム機能部160は、ユーザプログラム取得手段162と、ユーザプログラム実行手段164と、システムプログラム記憶手段166と、システムプログラム実行手段168と、を有する。また、プログラム機能部160は、メモリ(図示省略)に格納されるデータ、及びユーザプログラム実行手段164又はシステムプログラム実行手段168による処理結果などをユーザなどへ出力するためのデータに加工する機能も担う。
上位ネットワークインターフェイス170は、情報ネットワークN1を介して接続されている装置との間のデータのやり取りを仲介する。フィールドネットワークインターフェイス172は、フィールドネットワークN2を介して接続されている各種ロボット400との間のデータのやり取りを仲介する。
ユーザプログラム取得手段162は、ユーザプログラム30を何らかの手段で保持又は入力が可能な各種装置からユーザプログラム30を取得する。ユーザプログラム取得手段162には次のようなものが該当する。第1に、制御システム1がユーザプログラム30をツール端末200から取得する場合には、ツール端末200との間の通信インタフェースのハードウェア及びソフトウェアである。第2に、制御システム1がユーザプログラム30の編集機能を備え、キーボードのような入力デバイスからユーザプログラム30を入力する場合には、入力デバイス及びそれに関連するソフトウェアである。第3に、制御システム1がサーバ装置210等に蓄積されたユーザプログラム30のライブラリから、情報ネットワークN1を介してユーザプログラム30を取得する場合は、ネットワーク通信のためのハードウェア及びユーザプログラム30の取得に関わるソフトウェアである。
システムプログラム記憶手段166は、システムプログラム32を記憶する手段であり、ROM及びメモリ等のプログラムが記憶可能な記憶手段が用いられる。
ユーザプログラム実行手段164は、ユーザプログラム30を実行する手段である。システムプログラム実行手段168は、システムプログラム32を実行する手段である。ユーザプログラム実行手段164及びシステムプログラム実行手段168には次のようなものが該当する。制御システム1に含まれる、汎用プロセッサ、ASICのようなハードウェア及びユーザプログラム実行のためのリソースやタイミングを管理するソフトウェアである。また、ユーザプログラム実行手段164及びシステムプログラム実行手段168の実体は、同一であってもよいし互いに別の実体であってもよい。
システムプログラム32は、制御システム1の基本的な機能を実現するためのプログラムであり、本実施形態では、システムプログラム32の一部において保護停止に係る各種処理が規定される。保護停止に係る各種処理とは、ロボット400における保護停止事象の発生を検知する処理(発生検知処理)、保護停止事象が発生した場合にユーザプログラム30の実行を停止させる処理(実行停止処理)、及びあらかじめ決められたユーザプログラム30の復帰位置からユーザプログラム30の実行を再開させるための処理(再開処理)、である。このようにシステムプログラム32は、保護停止事象が発生した場合にユーザプログラム30の実行を停止させる処理の規定を含む。これにより、保護停止事象が発生した場合にロボット400の動作が停止する。さらに、ロボット400の運動を迅速に停止させるためにロボット400の運動に制動をかける処理、停止したロボット400の位置姿勢を維持する処理などを追加してもよい。
(「保護停止」及び「「保護停止事象」の定義」)
ここで、本実施形態における「保護停止」について説明する。「保護停止」は、ロボッ
ト400が周囲の物体と接触したとき、計画外の接触をするおそれがあるとき、又はロボット400の動作に高負荷が生じたときにロボット自身又は周囲の物体を損傷させないことを目的として、ロボット400の動作を停止することをいう。周囲の物体には人体を含む。
ここで、本実施形態における「保護停止」について説明する。「保護停止」は、ロボッ
ト400が周囲の物体と接触したとき、計画外の接触をするおそれがあるとき、又はロボット400の動作に高負荷が生じたときにロボット自身又は周囲の物体を損傷させないことを目的として、ロボット400の動作を停止することをいう。周囲の物体には人体を含む。
ロボット400が周囲の物体と接触したときに動作を停止する判断は、ロボットが接触によって受けた力の大きさについての検知結果に基づいて行うことができる。ロボット400が受けた力の大きさについての検知のために、ロボットの関節を駆動するモータにかかるトルクの値や、ロボット400に備えられた力覚センサの検出値を利用することができる。高負荷が生じたときに動作を停止する判断についても同様である。
ロボット400が周囲の物体と計画外の接触をするおそれがあるときに動作を停止する判断は、ロボットの周囲の状況を監視するカメラなどのセンサによる検知結果に基づいて行うことができる。
「保護停止事象」は、保護停止の原因となる事象である。ロボットが所定以上の大きさの力を受けたことや、ロボットの周囲に計画外の接触をするおそれのある物体が存在することは、保護停止事象に該当する。
(ロボット制御)
制御システム1のロボット制御は、例えば、(A)統合コントローラ100からロボットコントローラ300に指令を送信してスクリプトを実行する場合と、(B)統合コントローラ100からロボット400に直接指令を送信して制御する場合とが想定されるため、図4及び図5を参照してそれぞれ説明する。また、統合コントローラ100で実行される各タスクには、特許文献3に記載されているように、優先度が規定され、制御周期T1毎にトリガされる。第1タスク10ではフィールドとの間で入力値および制御指令を更新する入出力リフレッシュ処理(図4及び図5では「O/I」、以降ではO/I処理と記載する)が実行される。入出力リフレッシュ処理を行うためのプログラムはシステムプログラム32に属する。第1タスク10の次の優先度のタスクが第2タスク18である。第2タスク18では、ユーザの制御目的に応じたプログラムが実行される。具体的には、第2タスク18は、シーケンスプログラムを実行するシーケンス処理12と、第1ロボット制御プログラムを実行する第1ロボット制御プログラム処理14(RP14)と、モーションコントロールプログラムを実行するモーションコントロールプログラム処理16(MC16)とを含む。シーケンスプログラム、第1ロボット制御プログラム、及びモーションコントロールプログラムは、ユーザプログラム30に属する。シーケンス処理12では、1回の制御周期T1においてシーケンスプログラムが先頭から最終まで実行される。シーケンスプログラムは、例えば、搬送装置をはじめとするロボット周辺に存在する装置の制御を担っている。第1ロボット制御プログラムは、ロボットの制御を担っている。第1ロボット制御プログラム処理14を設けずに、シーケンス処理12において実行されるシーケンスプログラムにロボットの制御を担わせるようにしてもよい。モーションコントロールプログラムは、例えば、サーボモータなどのアクチュエータに対して、位置、速度、加速度、加加速度、角度、角速度、角加速度、及び角加加速度などの数値を制御指令として演算するためのプログラムである。
制御システム1のロボット制御は、例えば、(A)統合コントローラ100からロボットコントローラ300に指令を送信してスクリプトを実行する場合と、(B)統合コントローラ100からロボット400に直接指令を送信して制御する場合とが想定されるため、図4及び図5を参照してそれぞれ説明する。また、統合コントローラ100で実行される各タスクには、特許文献3に記載されているように、優先度が規定され、制御周期T1毎にトリガされる。第1タスク10ではフィールドとの間で入力値および制御指令を更新する入出力リフレッシュ処理(図4及び図5では「O/I」、以降ではO/I処理と記載する)が実行される。入出力リフレッシュ処理を行うためのプログラムはシステムプログラム32に属する。第1タスク10の次の優先度のタスクが第2タスク18である。第2タスク18では、ユーザの制御目的に応じたプログラムが実行される。具体的には、第2タスク18は、シーケンスプログラムを実行するシーケンス処理12と、第1ロボット制御プログラムを実行する第1ロボット制御プログラム処理14(RP14)と、モーションコントロールプログラムを実行するモーションコントロールプログラム処理16(MC16)とを含む。シーケンスプログラム、第1ロボット制御プログラム、及びモーションコントロールプログラムは、ユーザプログラム30に属する。シーケンス処理12では、1回の制御周期T1においてシーケンスプログラムが先頭から最終まで実行される。シーケンスプログラムは、例えば、搬送装置をはじめとするロボット周辺に存在する装置の制御を担っている。第1ロボット制御プログラムは、ロボットの制御を担っている。第1ロボット制御プログラム処理14を設けずに、シーケンス処理12において実行されるシーケンスプログラムにロボットの制御を担わせるようにしてもよい。モーションコントロールプログラムは、例えば、サーボモータなどのアクチュエータに対して、位置、速度、加速度、加加速度、角度、角速度、角加速度、及び角加加速度などの数値を制御指令として演算するためのプログラムである。
図4を参照して(A)の場合のロボット制御について説明する。制御周期T1aにおいて第2タスクの第1ロボット制御プログラム処理14によりスクリプト実行命令(以下、単に命令と記載する場合もある)が生成される。次の制御周期T1bの第1タスクのO/I処理において、生成されたスクリプト実行命令がロボットコントローラ300に送信される。なお、便宜上図示していないが、システムプログラム32として、図示の各プログラムの実行タイミングを制御しているスケジューラ、保護停止事象の発生を監視するプロ
グラムなどがバックグラウンドで実行されている。スクリプト実行命令は、O/I処理の一環としてではなく、第1ロボット制御プログラム処理14の実行直後などの任意のタイミングで送信するようにしてもよい。
グラムなどがバックグラウンドで実行されている。スクリプト実行命令は、O/I処理の一環としてではなく、第1ロボット制御プログラム処理14の実行直後などの任意のタイミングで送信するようにしてもよい。
ロボットコントローラ300は、制御周期T1毎に制御を実行する。指令を受け付け(20)、受け付けた命令のスクリプトを実行し(22)、実行完了通知を統合コントローラ100に送信する(24)。ロボットコントローラ300の制御周期T1は、統合コントローラ100の制御周期T1と同じ長さで、かつ、同期していることが好ましいが、異なる長さの周期であったり非同期であったりしてもよい。また、ロボットコントローラ300における制御周期を、統合コントローラの制御周期T1より短い(例えば半分の長さの)制御周期T2とし、制御周期T2毎にスクリプトを実行するようにしてもよい。そうすると、より滑らかなロボット制御が行える。この場合のスクリプトは制御周期T2内の時間で実行完了できる規模のものである。この場合も、統合コントローラ100とロボットコントローラ300との間の通信は制御周期T1毎に行われる。
図5を参照して(B)の場合のロボット制御について説明する。図5では、統合コントローラ100が実行するタスクとして、第3タスク26が追加されている。第3タスク26は、第2タスク18よりも優先度が低く、制御周期T1の2倍の長さの周期で実行される。第3タスク26では、第2ロボット制御プログラムが実行される。第2ロボット制御プログラムは、ユーザプログラム30に属する。第2ロボット制御プログラムは、ロボット400の一部、例えばグリッパの制御を担うプログラムである。第2ロボット制御プログラムの内容は、(A)の場合にロボットコントローラ300で実行されるスクリプトに相当する。第3タスク処理26で生成されたロボット400のグリッパに対する指令は、O/I処理の一環としてロボットコントローラ300に送信される。第3タスク処理26で生成された指令は、第3タスク処理の実行が完了していない制御周期T1bにおける符号(1)のO/I処理では送信されず、実行が完了した後の制御周期T1cにおける符号(2)のO/I処理で送信される。また、第2タスク18で実行される第1ロボット制御プログラムにおいて(A)の場合にロボットコントローラ300で実行されるスクリプトに相当する内容を規定し、第1ロボット制御プログラムの実行によってロボット400に対する指令を生成するようにしてもよい。
(A)及び(B)のロボット制御の方式は、何れかだけを用いるようにしてもよいし、制御対象部位に応じて使い分けてもよい。例えばロボットアームの各関節の制御は(A)の方式で制御し、グリッパの開閉の制御に関しては(B)の方式で制御する使い分けが可能である。(A)及び(B)の方式を同一のタスク、例えば第2タスク18の中で使い分けてもよい。
ロボット動作の制御中には保護停止事象が発生する場合がある。保護停止事象が発生した場合の処理はシステムプログラム32に規定する。
(作業例に係る制御)
次に、作業板に部品を挿入する作業例を実行する制御内容とする場合について、制御フローを説明する。制御の方式は、上記(A)のスクリプトの実行指令を生成する方式、(B)のロボットに対する指令を直接生成する方式のいずれでもよい。図6は、作業板に部品を挿入する作業を実行する制御内容を模式的に示す図である。図6に示すように、トレイRaに配置された部品Aを作業板Rbの挿入位置Piの穴に挿入する作業が想定される。挿入は仮挿し及び本挿しの工程に分けられる。
次に、作業板に部品を挿入する作業例を実行する制御内容とする場合について、制御フローを説明する。制御の方式は、上記(A)のスクリプトの実行指令を生成する方式、(B)のロボットに対する指令を直接生成する方式のいずれでもよい。図6は、作業板に部品を挿入する作業を実行する制御内容を模式的に示す図である。図6に示すように、トレイRaに配置された部品Aを作業板Rbの挿入位置Piの穴に挿入する作業が想定される。挿入は仮挿し及び本挿しの工程に分けられる。
図7は、部品を挿入する作業を実行する場合の制御フローの一例である。
S10では、画像センサ402でトレイRaを撮像し、部品Aの部品位置Paを取得する。ここで、「部品位置」は部品の位置及び姿勢を表す情報の意味である。
S12では、取得した部品位置Paにある部品Aを把持できる位置までグリッパ404を移動し、部品Aをグリッパ404で把持する。
S14では、把持した部品Aを挿入位置Piに移動し、穴に押し込む(仮挿し工程に相当)。仮挿しは、部品Aを挿入開始位置Piに移動した後、部品Aの一部が穴に入っていてグリッパ404を開いても部品Aが落下しない状態となるまで部品Aを穴に押し込む動作である。グリッパ404が部品Aの側面を把持しているのでそのままでは部品Aを深く挿入できないため、仮挿しが必要である。
S16では、グリッパ404を開き、作業板Rbの挿入位置Piに対して後方の本挿しの開始位置(Pr)にグリッパ404を移動させ、グリッパ404を閉じる。
S18では、閉じたグリッパ404で仮挿し状態の部品Aを押し込み(本挿し工程に相当)、所定の深さまで、または、穴の底に到達するまで、押し込む動作により本挿しを完了させる。
S20では、グリッパ404を作業板Rbの挿入位置Piに対して後方の所定の退避場所まで移動し、作業を終了する。なお、S10~S20の制御は一例であり他の制御を行ってもよい。
(保護停止判断)
次に、保護停止判断の例を説明する。以下に説明する保護停止判断の処理は、システムプログラム32によるユーザプログラム30の実行を停止させる処理の一態様である。図8は、保護停止の判断に用いられるロボット400の取得データの一例である。ロボットコントローラ300は、ロボット400の力覚センサから力覚情報を取得し、ロボット400の各軸モータの電流検出器から電流値を取得する。統合コントローラ100は、図4のO/I処理の一環として、力覚情報及び電流値をロボットコントローラ300から取得する。
次に、保護停止判断の例を説明する。以下に説明する保護停止判断の処理は、システムプログラム32によるユーザプログラム30の実行を停止させる処理の一態様である。図8は、保護停止の判断に用いられるロボット400の取得データの一例である。ロボットコントローラ300は、ロボット400の力覚センサから力覚情報を取得し、ロボット400の各軸モータの電流検出器から電流値を取得する。統合コントローラ100は、図4のO/I処理の一環として、力覚情報及び電流値をロボットコントローラ300から取得する。
図9は、保護停止判断の制御フローの一例である。保護停止判断の制御フローは、システムプログラム32において実行される。保護停止判断の制御に必要な情報として、統合コントローラ100の設定情報34には、保護停止に係る力覚情報について定めた閾値、保護停止に係るトルクレベルについて定めた閾値、電流値をトルクに変換するためのトルク定数が記憶されている。
S30では、力覚センサの力覚情報、各軸モータの電流値を取得する。
S32では、取得した力覚情報が、力覚情報について定めた閾値以上であるか否かを判定する。閾値以上である場合はS38(保護停止)へ移行し、閾値以上でない場合はS34へ移行する。
S34では、トルク定数を元に、取得した各軸モータの電流値をトルクに変換する。
S36では、変換したトルクが、トルクレベルについて定めた閾値以上であるか否かを判定する。閾値以上であると判定した場合はS38(保護停止)へ移行し、閾値以上でないと判定した場合は保護停止不要として、処理を終了する。
S38では、ロボット400を保護停止する。保護停止はユーザプログラム30の停止により実行する。ユーザプログラム30の実行が停止されると、それ以降の運動指令が出なくなるのでロボット400が新たな運動指令によって運動することがなくなる。
S40では、保護停止時のデバッグ情報を保存する。
ユーザプログラム30の実行停止をするときには、実行中の運動指令があればその実行をキャンセルすることが好ましい。それにより、例えば実行中の速度指令が有効状態のままになっていてロボット400のモータが駆動され続けることを防止できる。このキャンセル処理は、システムプログラム32に記述してもよいし、ロボット400のモータを駆動する部分が一定周期で指令が来ない場合に自動的に実行中の指令をキャンセルするようにしてもよい。
システムプログラム32には、ロボット400の運動を迅速に停止させるためにロボット400の運動に制動をかける処理、停止したロボット400の位置姿勢を維持する処理などを追加してもよい。
また、図9の保護停止判断の制御フローでは力覚情報及びトルクを元に保護停止する場合について説明したが、この他にも、画像センサ402による周囲の障害物の検出結果やグリッパ情報の過負荷によって判断してもよい。
(再開判断)
次に、保護停止後の再開判断の例について説明する。図10に、保護停止後の再開判断に使用されうる情報源の例を示す。システムプログラム32の「再開判断」には各情報源からの入力として、「画像処理」から検出結果、「把持制御」からグリッパ情報、「ロボット制御」からロボット400の位置、及び力覚情報・トルク情報(電流値)、「ロボット診断」からユーザプログラム30の停止区域、自己診断の結果、デバッグ情報、等が与えられる。以下に説明する再開判断の処理は、システムプログラム32によるあらかじめ決められたユーザプログラム30の復帰位置からユーザプログラム30の実行を再開させるための処理の一態様である。システムプログラム32では、ユーザプログラムの実行を再開させる処理は、再開要件が充足されていることを再開の条件とする。
次に、保護停止後の再開判断の例について説明する。図10に、保護停止後の再開判断に使用されうる情報源の例を示す。システムプログラム32の「再開判断」には各情報源からの入力として、「画像処理」から検出結果、「把持制御」からグリッパ情報、「ロボット制御」からロボット400の位置、及び力覚情報・トルク情報(電流値)、「ロボット診断」からユーザプログラム30の停止区域、自己診断の結果、デバッグ情報、等が与えられる。以下に説明する再開判断の処理は、システムプログラム32によるあらかじめ決められたユーザプログラム30の復帰位置からユーザプログラム30の実行を再開させるための処理の一態様である。システムプログラム32では、ユーザプログラムの実行を再開させる処理は、再開要件が充足されていることを再開の条件とする。
また、システムプログラム32には、ユーザプログラム30の再開後の実行において利用される再開用データをユーザプログラム30から利用可能とする処理を規定する。再開用データにはユーザプログラム30における実行の停止が発生した区域である停止区域を含むようにしてもよい。
図11は、保護停止後の再開判断の制御フローである。
S50では、グリッパ診断情報、画像センサ診断情報(検出結果)、ロボット診断情報の各種診断情報を取得する。
S52では、取得した各種診断情報を用いて、故障しているか否かを判定する。S52の判定が、本開示の再開要件における「自己診断の結果として不具合の発生が検出されなかったこと」の一例である。故障していると判定した場合はS64へ移行し、故障していないと判定した場合はS54へ移行する。故障しているか否かは、各種診断情報の何れかで故障との診断結果が含まれているかにより判定すればよい。また、通信エラーが発生したがすぐに正常通信を再開できた場合のように、ロボット400の動作続行に支障のない一時的な不具合は「故障していない」と扱う。
S54では、停止時のデバッグ情報を取得する。なお、デバッグ情報には、停止時に実行されていたユーザプログラム30により計画された軌道を含む。
S56では、デバッグ情報において保護停止からの復帰に支障となるような、故障以外の異常事象が起きているか否かを判定する。異常事象の例としては、操作対象物が破損していることを検出したという事象がある。異常事象が起きていると判定した場合はS64へ移行し、異常事象が起きていないと判定した場合はS58へ移行する。
S58では、ロボット400の現在の位置姿勢を取得する。
S60では、現在の位置姿勢と計画された軌道とを比較し、現在の位置姿勢がユーザプログラム30により計画された軌道から逸脱しているか否かを判定する。逸脱していないと判定した場合はS62へ移行し、逸脱していると判定した場合はS64へ移行する。なお、逸脱していないかは、計画された軌道に対して、現在の位置姿勢が基準値以上ずれていないかにより判断すればよい。計画された軌道は、計画された軌道上におけるロボット400の位置姿勢である。好ましくは、実行していた最後の指令位置と検出位置とを比較して判断する。
上記S60の判定が、本開示の再開要件における「保護停止後のロボットの位置姿勢と当該位置姿勢に対応する計画された位置姿勢との間の乖離が基準値以内であること」の一例である。
S62では、復帰可否を「True」(復帰可)と判断し、S66へ移行する。
S64では、復帰可否を「False」(復帰不可)と判断し、処理を終了する。
復帰可の判断を得るための再開要件として、保護停止が発生した原因が解消されていることを追加してもよい。例えば、力覚情報、トルク、又はグリッパの高負荷により保護停止が発生した場合に、高負荷が解消された状態が一定時間以上継続していることを再開要件として追加してもよい。また、検出結果においてロボット400が周囲の物体と計画外の接触をするおそれがあるという判断に基づいて保護停止が発生した場合に、検出されていた物体が検出されなくなったことにより計画外の接触をするおそれがなくなったという判断をすることを再開要件として追加してもよい。
S66では、再開用データとして、ユーザプログラム30の停止区域をユーザプログラム30に通知し、ユーザプログラム30の復帰位置からユーザプログラム30の実行を開始させる。
停止区域とは、保護停止が発生したときに実行していたユーザプログラム30の命令のステップを区域内に含む、ユーザプログラム30における区域である。停止区域は、停止位置として把握するのにふさわしいロボットの1つ又は一続きの要素動作に対応する区域として設定される。例えば、実施形態の仮挿し動作に対応するユーザプログラム30の区域、本挿し動作に対応するユーザプログラム30の区域は、その区域内でユーザプログラム30の実行が停止されれば、その区域を、ユーザプログラム30における実行が停止された位置に相当するとみなすことができる。通知は、例えばユーザプログラム30からもアクセスできるメモリ領域に停止区域を特定するデータを格納することによって行う。
再開用データには、停止区域のほか、ユーザプログラム30の実行が停止された時刻、ユーザプログラム30の実行が停止されたときのロボット400の位置姿勢、ユーザプログラム30の実行が停止されたときにロボット400が受けていたトルクや力覚センサの
検出値、ユーザプログラム30の実行が停止されたとき又はその後に撮像された周囲の物体を含む画像データの検出結果も含めてよい。
検出値、ユーザプログラム30の実行が停止されたとき又はその後に撮像された周囲の物体を含む画像データの検出結果も含めてよい。
(復帰後のユーザプログラム30による制御フロー)
図12は、復帰後のユーザプログラム30による制御フローである。図13Aは、部品を挿入する作業を実行する場合の制御フローに対する復帰位置である。図13Bは、復帰位置テーブルの例である。
図12は、復帰後のユーザプログラム30による制御フローである。図13Aは、部品を挿入する作業を実行する場合の制御フローに対する復帰位置である。図13Bは、復帰位置テーブルの例である。
S70では、停止区域を取得する。S72では、停止区域が仮挿し中(Pg1)に対応するか、本挿し中(Pg2)に対応するかを判定して処理を分岐する。S74(S74A,S74B)では、部品状態が落下か、非落下かを判定して処理を分岐する。落下の場合はRp1(S76)へ移行する。S74Aでは非落下の場合はRp2(S80)へ移行する。S74Bでは非落下の場合は図13AのRp3へ移行することで復帰する。
S76では、落下している部品Aの位置を画像センサ402で検出する。S78では、グリッパ404で部品Aを把持し、仕分け箱に入れるように制御し、図13AのAに移行することで復帰する。
S80では、部品Aを穴から引き抜き、図13AのBへ移行することで復帰する。
ユーザプログラム30の復帰位置は、例えば、復帰用のアドレスを格納した変数としてシステムプログラム32に与えられる。
また、復帰後のユーザプログラム30による制御フローは上記のフローに限定されない。例えば、仮挿し動作の途中で部品Aが穴とかみ合ってそれ以上奥には動かなくなることがあり、このときに部品Aをさらに押し込むと保護停止にいたる場合がある。この場合に、いったん部品Aを穴から引き抜いた後に仮挿し動作をやり直してもよい。引き抜いた後に直ちに仮挿し動作をやり直すのではなく、部品Aを引き抜いた後にいったん仕分け箱に戻し、戻した部品Aを把持し直して仮挿し動作をやり直すようにしてもよい。
ロボットアームとグリッパとの接続部分にコンプライアンスモジュールを挿入したりグリッパの把持面に弾性部材層を設けたりすることにより部品Aや穴の縁の面取りに案内されて部品Aが動けるようにしておけば、部品Aと穴との間にわずかな位置ずれがあっても仮挿しが1回目から成功しやすくなり、仮挿しをやり直した場合の成功率も高くなる。このように仮挿し動作をやり直すだけで成功する場合もある。
また、本挿し動作が途中で保護停止になったときは、部品Aを押していたグリッパの指先を部品Aからいったん離し、本挿し動作をやり直す。本挿し動作のやり直しを所定回数試みても保護停止を繰り返す場合は、部品Aを把持して穴から引き抜き、仕分け箱に戻して把持し直し、仮挿し動作からやり直すようにしてもよい。
上記の説明では、ユーザプログラム30の復帰位置が単一であり、復帰後の動作フローをユーザプログラム30が担うようにしたが、用意された複数の復帰位置の中からシステムプログラム32が復帰位置を選択することにより復帰後のユーザプログラム30が担う制御動作を変えるようにしてもよい。復帰位置の選択は、例えば図13Bの復帰位置テーブルにしたがって行われる。復帰位置テーブルには、停止区域の候補である停止区域Pg1、停止区域Pg2のそれぞれについて、停止後部品状態に応じた復帰位置が示されている。復帰位置テーブルは、ユーザプログラム30とともに統合コントローラ100に与えられ、システムプログラム32からアクセス可能とされる。復帰位置テーブルには、停止後部品状態(部品非落下か、部品落下か)の識別方法の情報が付随する。停止後部品状態の
識別方法は、例えば画像センサ402の画像を処理する画像処理部に対して問合せを行い、部品非落下か部品落下かの判定結果を得ることである。また、ユーザプログラム30によって規定される動作の内容によっては、停止後部品状態のような場合分けがなく、停止区域に応じて復帰位置が決まる復帰位置テーブルでよい場合もある。復帰位置テーブルは、本開示の復帰位置データの一例である。
識別方法は、例えば画像センサ402の画像を処理する画像処理部に対して問合せを行い、部品非落下か部品落下かの判定結果を得ることである。また、ユーザプログラム30によって規定される動作の内容によっては、停止後部品状態のような場合分けがなく、停止区域に応じて復帰位置が決まる復帰位置テーブルでよい場合もある。復帰位置テーブルは、本開示の復帰位置データの一例である。
また、図3の統合コントローラ100の機能的な構成において、復帰位置データを取得する復帰位置データ取得手段をさらに備え、上記の復帰位置テーブルの情報を取得するようにしてもよい。
また、ロボット400が周囲の物体と計画外の接触をするおそれがあるという判断(検出結果)に基づいて動作を停止した場合には、ユーザプログラム30の停止区域の冒頭の位置を復帰位置としてもよい。また、当該判断に基づいて動作を停止した場合には、ユーザプログラム30の停止したステップから、ステップを遡ることなくそのまま続きのステップを実行するように決められていてもよい。
(保護停止事象に関するケース)
保護停止事象に関するケースを説明する。例えば、ケーブルの引っ張りによって一時的に過負荷が発生した時、操作において接触がなくても、保護停止事象が発生する場合がある。また、部品のばらつきにより、同じパラメータ動作でも対象物体が異なるだけで成功したり、失敗したりするケースで保護停止事象が生じることがある。この場合、基本的に部品の組み合わせを変えれば成功することが想定される。
保護停止事象に関するケースを説明する。例えば、ケーブルの引っ張りによって一時的に過負荷が発生した時、操作において接触がなくても、保護停止事象が発生する場合がある。また、部品のばらつきにより、同じパラメータ動作でも対象物体が異なるだけで成功したり、失敗したりするケースで保護停止事象が生じることがある。この場合、基本的に部品の組み合わせを変えれば成功することが想定される。
ロボット400にケーブルが付随するケースがある。図14(図14A及び図14B)は、ロボット400に付随するケーブルの引っ張りのケースを模式的に示す図である。図14Aの(A)では、ロボット400の動作によって、ケーブルの引っ張りが発生しており、ロボット400の動作又はロボットハンドの移動とは逆方向又は逆方向に準ずる方向の力が検出され保護停止が発生する。この方向の力は手首の力覚センサなどで検出可能である。ケーブルの引っ張りはロボットアームが伸びるときに発生する。この引っ張りはロボット400自体のモデルがあれば計算可能である。この場合、復帰方法としては図14Bの(B)のように、ロボットアームを曲げる方向にロボットハンドを移動させ、ケーブルを緩ませてから動作を再開することが想定される。
また、ケーブルの引っ張りには、外付けツールなどの外部に固定されたケーブルが引っ張られるケースも想定される。図15に示すように、ロボット400がツールTaを把持しており、ツールTaのケーブルが固定されているコントローラTbから離れる方向にロボット400のハンドを移動している場合に、手首力覚にて移動方向とは逆に力の過負荷が検出されれば、ツールTaによるケーブルが過負荷になったと判断される。復帰方法としては、(1)ロボット400が双腕であれば、停止していない方の腕にツールTaを持ち替える。(2)単腕であれば、そのまま再起動して、ケーブルを緩める方向にロボット400のハンドを移動する。緩める方向は、もともとの移動方向とは逆方向、コントローラTbに近づく方向である。移動後、累積のケーブルテンションを初期化し作業を再開する。ケーブルにテンションがかかった原因が図示しない他の物品にケーブルが絡んだためであれば、当該ケーブルの絡みを解消するようにロボット400を動作させてから作業を再開する。また、一度ツールTaを解放し、もう一度拾いなおしてから作業を再開することも想定される。
また、図16に示すように、ロボット400のロボットアームで冷凍庫などの扉を開ける作業の途中に扉がわずかに開いた状態で過負荷がかかりロボット400が保護停止するケースが想定される。この場合、まずロボット400を積載したAGV(Automatic Guid
ed Vehicle:無人搬送車)を扉が閉まる方向に移動させることによって扉を閉め、その後、アームの負荷が軽減するようにAGVの位置決めをし直してから扉を開ける作業を再開する。LA(Laboratory Automation)では、扉を開けるという作業を遂行することより
も、冷凍庫内の温度変化を最小限に抑えるという観点、すなわち、この場合は冷凍庫の扉を一刻も早く閉める動作を重視する観点がある。そのため、AGV側だけを動かしまずは扉を閉める復帰の制御が想定される。
ed Vehicle:無人搬送車)を扉が閉まる方向に移動させることによって扉を閉め、その後、アームの負荷が軽減するようにAGVの位置決めをし直してから扉を開ける作業を再開する。LA(Laboratory Automation)では、扉を開けるという作業を遂行することより
も、冷凍庫内の温度変化を最小限に抑えるという観点、すなわち、この場合は冷凍庫の扉を一刻も早く閉める動作を重視する観点がある。そのため、AGV側だけを動かしまずは扉を閉める復帰の制御が想定される。
以上、本実施形態の制御システム1によれば、保護停止及び再開を統合コントローラ100の提供者によって提供されるシステムプログラム32に規定し、実行することができる。
上記実施形態の制御システム1の態様について補足する。制御システム1は実施形態において以下のような形態で実施可能である。制御システム1は、各手段を備えた装置、又は全体として各手段を備える複数の連携する装置として以下(A1)及び(A2)の少なくとも一方のように実施できる。
(A1)例えば、実施形態において、統合コントローラ100がロボット400への指令を決定する場合は、ロボット400への指令を決定するための、統合コントローラ100で実行されるプログラムがユーザプログラム30に該当する。
(A2)実施形態において、統合コントローラ100がロボットコントローラ300に対して、ロボットコントローラ300が実行するスクリプトを指示する場合がある。この場合は、少なくともスクリプトの実行指示を決定するための統合コントローラ100で実行されるプログラムがユーザプログラム30に該当する。ロボットコントローラ300で実行されるスクリプトも、ユーザが要求する作業であって一連の動作によって遂行される特定の作業の全部又は一部をロボットに実行させるために作成されている場合はユーザプログラム30に該当する。なお、スクリプトが、例えばグリッパ404を「開く又は閉じる」のような汎用的な要素動作だけのために作成されている場合はユーザプログラム30に該当しない。
システムプログラム32は統合コントローラ100においてのみ記憶され、かつ、実行される態様に限定されない。実施形態の上記(A1)及び(A2)いずれの場合も、システムプログラム32は、統合コントローラ100、ロボットコントローラ300のいずれかに集約して、又は両方に分担して、記憶及び実行されてよい。実施形態の上記(A1)及び(A2)いずれの場合も、ロボットコントローラ300は、統合コントローラ100で決定された指令又はロボットコントローラ300でスクリプトを実行して生成された指令を実現する動作が実行されるようにロボット400の各モータを駆動する。また、制御システム1は、統合コントローラ100の機能及びロボットコントローラ300の機能を兼ね備えた装置であってもよい。
また、制御システム1は、広域ネットワークを介してロボット400と連携するシステムとして実施できる。
例えば、ロボット400の近傍には実施形態のロボットコントローラ300のうちロボット400の各モータを駆動する機能だけを配置し、これをインターネットに接続したうえで、各手段(ユーザプログラム取得手段162、ユーザプログラム実行手段164、システムプログラム記憶手段166、システムプログラム実行手段168)はインターネットに接続した1又は複数のコンピュータに配置してもよい。
なお、上記実施形態は、本開示の構成例を例示的に説明するものに過ぎない。本開示の
技術は上記の具体的な形態には限定されることはなく、その技術的思想の範囲内で種々の変形が可能である。
技術は上記の具体的な形態には限定されることはなく、その技術的思想の範囲内で種々の変形が可能である。
また、上実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の認識の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
2022年1月14日に出願された日本国特許出願2022-004708号の開示は、その全体が参照により本明細書に取り込まれる。本明細書に記載された全ての文献、特許出願、及び技術規格は、個々の文献、特許出願、及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
1 制御システム
30 ユーザプログラム
32 システムプログラム
100 統合コントローラ
160 プログラム機能部
162 ユーザプログラム取得手段
164 ユーザプログラム実行手段
166 システムプログラム記憶手段
168 システムプログラム実行手段
30 ユーザプログラム
32 システムプログラム
100 統合コントローラ
160 プログラム機能部
162 ユーザプログラム取得手段
164 ユーザプログラム実行手段
166 システムプログラム記憶手段
168 システムプログラム実行手段
Claims (7)
- ユーザが要求する作業であって一連の動作によって遂行される特定の作業をロボットに実行させるためのユーザプログラムを取得するユーザプログラム取得手段と、
前記ユーザプログラムを実行するユーザプログラム実行手段と、
前記ロボットにおける保護停止事象の発生を検知する処理、前記保護停止事象が発生した場合に前記ユーザプログラムの実行を停止させる処理、及びあらかじめ決められたユーザプログラムの復帰位置から前記ユーザプログラムの実行を再開させるための処理を規定するシステムプログラムを記憶するシステムプログラム記憶手段と、
前記システムプログラムを実行するシステムプログラム実行手段と
を備えた制御システム。 - 前記ユーザプログラムの実行を再開させる処理は、再開要件が充足されていることを再開の条件とする、請求項1に記載の制御システム。
- 前記再開要件は、自己診断の結果として不具合の発生が検出されなかったこと及び保護停止後のロボットの位置姿勢と当該位置姿勢に対応する計画された位置姿勢との間の乖離が基準値以内であることの少なくともいずれかを含む、請求項2に記載の制御システム。
- 前記システムプログラムは、さらに、前記ユーザプログラムの再開後の実行において利用される再開用データを前記ユーザプログラムから利用可能とする処理を規定する、請求項1~請求項3の何れか1項に記載の制御システム。
- 前記再開用データは、前記ユーザプログラムにおける実行の停止が発生した区域である停止区域を含む、請求項4に記載の制御システム。
- 復帰位置データを取得する復帰位置データ取得手段をさらに備え、
前記復帰位置データは、前記ユーザプログラムの複数の停止区域の候補に対応付けられた前記ユーザプログラムにおける複数の復帰位置を含み、
前記ユーザプログラムの実行を再開させる処理は、前記復帰位置データにしたがって前記ユーザプログラムの実行を再開させる処理である、請求項1~請求項5の何れか1項に記載の制御システム。 - ユーザが要求する作業であって一連の動作によって遂行される特定の作業をロボットに実行させるためのユーザプログラムを取得するユーザプログラム取得手段、
前記ユーザプログラムを実行するユーザプログラム実行手段、
前記ロボットにおける保護停止事象の発生を検知する処理、前記保護停止事象が発生した場合に前記ユーザプログラムの実行を停止させる処理、及びあらかじめ決められたユーザプログラムの復帰位置から前記ユーザプログラムの実行を再開させるための処理を規定するシステムプログラムを記憶するシステムプログラム記憶手段、並びに
前記システムプログラムを実行するシステムプログラム実行手段
として1又は連携する複数のコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202280086169.6A CN118647491A (zh) | 2022-01-14 | 2022-12-20 | 控制系统以及程序 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022004708A JP2023103908A (ja) | 2022-01-14 | 2022-01-14 | 制御システム及びプログラム |
JP2022-004708 | 2022-01-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023136062A1 true WO2023136062A1 (ja) | 2023-07-20 |
Family
ID=87278991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/046971 WO2023136062A1 (ja) | 2022-01-14 | 2022-12-20 | 制御システム及びプログラム |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP2023103908A (ja) |
CN (1) | CN118647491A (ja) |
WO (1) | WO2023136062A1 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07129418A (ja) * | 1993-11-08 | 1995-05-19 | Fanuc Ltd | マルチタスク環境でのプログラム制御方式 |
JPH07152419A (ja) * | 1993-07-30 | 1995-06-16 | Fanuc Robotics North America Inc | 直角座標空間における経路プランニング方法及びシステム |
JPH0991918A (ja) | 1995-09-26 | 1997-04-04 | Mitsubishi Rayon Co Ltd | フロッピーディスクジャケット用ライナー |
JP2002014709A (ja) * | 2000-06-30 | 2002-01-18 | Denso Corp | ロボットコントローラ |
JP2011110629A (ja) | 2009-11-24 | 2011-06-09 | Idec Corp | ロボット制御方法およびロボット制御システム |
JP2019061466A (ja) | 2017-09-26 | 2019-04-18 | オムロン株式会社 | 制御装置 |
-
2022
- 2022-01-14 JP JP2022004708A patent/JP2023103908A/ja active Pending
- 2022-12-20 CN CN202280086169.6A patent/CN118647491A/zh active Pending
- 2022-12-20 WO PCT/JP2022/046971 patent/WO2023136062A1/ja active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07152419A (ja) * | 1993-07-30 | 1995-06-16 | Fanuc Robotics North America Inc | 直角座標空間における経路プランニング方法及びシステム |
JPH07129418A (ja) * | 1993-11-08 | 1995-05-19 | Fanuc Ltd | マルチタスク環境でのプログラム制御方式 |
JPH0991918A (ja) | 1995-09-26 | 1997-04-04 | Mitsubishi Rayon Co Ltd | フロッピーディスクジャケット用ライナー |
JP2002014709A (ja) * | 2000-06-30 | 2002-01-18 | Denso Corp | ロボットコントローラ |
JP2011110629A (ja) | 2009-11-24 | 2011-06-09 | Idec Corp | ロボット制御方法およびロボット制御システム |
JP2019061466A (ja) | 2017-09-26 | 2019-04-18 | オムロン株式会社 | 制御装置 |
Also Published As
Publication number | Publication date |
---|---|
CN118647491A (zh) | 2024-09-13 |
JP2023103908A (ja) | 2023-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11325263B2 (en) | System and method for real-time robotic control | |
US10496079B2 (en) | Control device and control method | |
US10908577B2 (en) | Control device | |
US10606246B2 (en) | Control device and control method with various command values in a shared memory providing access to various program execution and command value operation parts in each control cycle | |
KR102127951B1 (ko) | 다중 프로세스 기반의 실시간 용접로봇 제어 시스템 및 그 제어방법 | |
DeSouza et al. | A subsumptive, hierarchical, and distributed vision-based architecture for smart robotics | |
WO2023136062A1 (ja) | 制御システム及びプログラム | |
Gordić et al. | Collision detection on industrial robots in repetitive tasks using modified dynamic time warping | |
CN117120219A (zh) | 实时机器人控制框架 | |
JP2014018941A (ja) | 制御装置、及び制御方法 | |
JP2010513039A (ja) | コントロール・システム | |
JP2016221659A (ja) | ロボットシステム、ロボットシステムの制御方法、プログラム、記録媒体及び物品の製造方法 | |
US12117788B2 (en) | Control device with second processing unit that accesses variable via first processing unit | |
US12011832B2 (en) | Real-time robotics control framework | |
US20220347844A1 (en) | Real-time robotics control framework | |
JP2019053397A (ja) | 制御装置および制御方法 | |
CN110312975B (zh) | 闭合回路的产品 | |
Nicolson | Standardizing I/O for mechatronic systems (sioms) using real time unix device drivers | |
JPH08106320A (ja) | 自動機械及び自動機械の制御方法 | |
Vistein et al. | Towards re-orchestration of real-time component systems in robotics | |
JP7456165B2 (ja) | 制御装置 | |
Moed et al. | An online supervisor for robotic tasks | |
US20240217100A1 (en) | Feature interfaces for real-time robotics control | |
JPS63132344A (ja) | 複数コンピュータによる分割処理システムにおける動作状態監視装置 | |
JP2024088106A (ja) | 制御システム、処理方法およびデータ中継プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22920580 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2022920580 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2022920580 Country of ref document: EP Effective date: 20240814 |