US20020029095A1 - Robot controller - Google Patents

Robot controller Download PDF

Info

Publication number
US20020029095A1
US20020029095A1 US09/944,090 US94409001A US2002029095A1 US 20020029095 A1 US20020029095 A1 US 20020029095A1 US 94409001 A US94409001 A US 94409001A US 2002029095 A1 US2002029095 A1 US 2002029095A1
Authority
US
United States
Prior art keywords
robot
stopping
procedure
robots
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US09/944,090
Other versions
US6434448B1 (en
Inventor
Tetsuya Kosaka
Hiromitsu Takahashi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Assigned to FANUC LTD. reassignment FANUC LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KOSAKA, TETSUYA, TAKAHASHI, HIROMITSU
Publication of US20020029095A1 publication Critical patent/US20020029095A1/en
Application granted granted Critical
Publication of US6434448B1 publication Critical patent/US6434448B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34399Switch between synchronous and asynchronous mode of controllers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34402Synchronize programs for machines, processes, tasks, if one stops other also
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39139Produce program of slave from path of master and desired relative position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40221Individual and common power cutoff switch for several robots
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50195Emergency stop stops drives and spindle, stored program remains in memory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50198Emergency stop
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50224Synchronize feed and spindle speed during slow down, stopping

Definitions

  • the present invention relates to a robot controller for use in a robot system in which robot controllers are connected with one another through a communication path, and more particularly to a robot controller for use in a robot system for performing a synchronously cooperative operation by a plurality of robots.
  • a robot controller comprises: storing means for storing assignment information on types of stopping procedure assigned for each of a plurality of causes for stopping the robot; detecting means for detecting a first cause for stopping occurred in the robot associated with the robot controller; designating means for designating a first type of stopping procedure based on the detected first cause for stopping and the assignment information stored in the storing means; sending means for sending identification information on the designated first type of stop procedure to another robot controller through the communication path; receiving means for receiving identification information on a second type of stop procedure sent from another robot controller through the communication path; and determining means for determining a type of the procedure of stopping the associated robot based on the identification information on the first type of stopping procedure or the identification information on the second type of stopping procedure.
  • the sending means may send identification information on the detected first cause for stopping to another robot controller through the communication path, and receiving means may receive identification information on a second cause for stopping occurred in a robot associated with another robot controller sent from another robot controller through the communication path and designating a second type of stop procedure based on the assignment information stored in the storing means.
  • the robot controller may further comprise specifying means for specifying one or more other robots to be stopped simultaneously with the associated robot when the first cause occurs.
  • the sending means may send identification information on the first type of stop procedure or the first cause for stopping to one or more other robot controllers of the specified one or more other robots through the communication path
  • the receiving means may receive identification information on a second type of stop procedure or a second cause for stopping from the one or more other robot controllers through the communication path.
  • the robot controller may further comprise means for sending and receiving information for performing a synchronized or cooperative operation. through the communication path, and means for enabling the determining means only when the associated robot is in performing a synchronized or cooperative operation with another robot.
  • the causes for stopping the robot may include an emergency stop command inputted in the robot and an alarm occurred in the robot, and the types of stopping procedure may be classified by whether or not a power supply is shut off and/or whether or not motors for driving the robot are subjected to acceleration/deceleration processing.
  • FIG. 1 is a block diagram of an essential part of a robot including a robot controller for controlling an associated robot according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram showing an example of a robot system with a plurality of robots connected by a communication line using a plurality of robot controllers as shown in FIG. 1;
  • FIG. 3 is a schematic view showing another example of a robot system with a plurality of robots connected by a communication line using a plurality of robot controllers as shown in FIG. 1;
  • FIG. 4 is a diagram of a setting example of definition information on master and slave robots for performing a synchronously cooperative operation
  • FIG. 5 is an example of definition information on a master robot set in a master program
  • FIG. 6 is a diagram of an execution sequence of operation programs for respective robots
  • FIG. 7 is an example of assignment of stop procedure types on respective stop procedure type numbers
  • FIG. 8 is an example of assignment of stop procedure type numbers on respective causes for stop procedure
  • FIG. 9 is a partial flowchart of processing to be executed by the processor of each robot controller, which is mainly a flowchart of processing to be performed by the robot controller for the robot to operate independently (execution of a normal program);
  • FIG. 10 is a continuation of the flowchart of FIG. 9, which is a part to be executed by the processor of a master robot controller (execution of a master program);
  • FIG. 11 is a continuation of the flowchart of FIG. 10 to be executed by the processor of the master robot controller (execution of the master program);
  • FIG. 12 is a continuation of the flowchart of FIG. 10, which is a part of to be executed by a slave robot controller (execution of a slave program);
  • FIG. 13 is a continuation of the flowchart of FIG. 12 to be executed by the slave robot controller (execution of the slave program);
  • FIG. 14 is a continuation of the flowchart of FIG. 13 to be executed by the slave robot (execution of the slave program);
  • FIG. 15 is a flowchart of a subroutine “stop command confirmation & prosecution” in the above flowchart;
  • FIG. 16 is a flowchart of “stop procedure management task”
  • FIG. 17 is a schematic view of a method for determining interpolation position data of a slave robot on which the motion amount of a master robot is reflected;
  • FIG. 18 is a schematic diagram showing a still another example of a robot system with a plurality of robots connected one another using a plurality of robot controllers;
  • FIG. 19 is a schematic diagram showing a still another example of a robot system with a plurality of robots connected one another using a plurality of robot controllers;
  • FIGS. 20 a and 20 b are diagrams for showing examples of communication method to be adopted in the robot system as shown in FIGS. 18 and 19.
  • FIG. 1 shows a robot controller for controlling each associated robot for use in a robot system in which a plurality of robot controllers are connected with one another through a communication path designed for a synchronously cooperative operation.
  • a robot controller 1 has a processor 10 for generally controlling a robot mechanism 2 and the robot controller 1 .
  • the processor 10 is connected with a ROM 11 , a RAM 12 , a nonvolatile memory 13 , a robot axis control section 14 , a communication module 15 , a teaching panel interface 16 , etc. via a bus 18 .
  • the ROM 11 stores a system program to be executed by the processor 10
  • the nonvolatile memory 13 stores set values of various parameters and a taught program for an operation to be performed by the robot mechanism 2 .
  • the RAM 12 is used for temporarily storage of data.
  • the robot axis control section 14 performs feedback controls of position, velocity and torque (current) of each motor for each axis by the digital servo control using a processor based on motion commands fro each axis, to drive the servomotor for each axis of the robot mechanism section 2 via a servo amplifier 17 .
  • the communication module 15 is connected to another robot controller by a communication path.
  • the teaching operation panel interface 16 is connected with a teaching operation panel 3 .
  • each robot controller 1 is the same as that of the conventional one, and the robot controllers of such configuration are connected to one another via a signal path of communication lines, to constitute a robot control system for a synchronously cooperative operation of a plurality of robots.
  • FIGS. 2 and 3 show examples of connection of the four robot controllers connected by a communication network of Ethernet. Any network other than Ethernet may be used.
  • the robot controllers No. 1 to No. 4 are connected to one another by signal lines L to form a signal path.
  • the robot controllers Nos. 1 - 4 are connected to one another by using a hub.
  • To identify each robot connected by the communication lines L each robot number is applied to each robot, and in the nonvolatile memory of each robot, the robot number assigned to that robot is set and stored.
  • the number of No. 1 to No. 4 are set and stored.
  • No. 1 to No. 4 are used for robot No. 1 to No. 4 and robot controller No. 1 to No. 4 .
  • robots No. 1 to No. 4 are used.
  • a transformation matrix from each robot to another robot is set by calibrating the installation position between the robots in construction of the robot control system. For example, when the robot No. 2 is viewed from the robot No. 1 , it is necessary to determine a position in a world coordinate system of the robot No. 1 at which a world coordinate system of the robot No. 2 lies. For this purpose, for example, a transformation matrix T 2-1 from the world coordinate system of the robot No. 1 to the world coordinate system of the robot No. 2 is determined. This is done for all patterns. However, since the inverse matrix of the transformation matrix T 2-1 from No. 1 to No. 2 is the transformation matrix from No. 2 to No. 1 , when the transformation matrix from No. 1 to No.
  • the transformation matrix thus determined is stored in the nonvolatile memory 13 of each robot controller.
  • the transformation matrix T 1-2 from No. 2 to No. 1 is stored in the controller of the robot No. 2 .
  • each transformation matrix is stored in the nonvolatile memory 13 of each robot controller, for example, the transformation matrix T 1-3 from No. 3 to No. 1 is stored in the robot controller No. 3 , the transformation matrix T 1-4 from No. 4 to No. 1 is stored in the robot controller No. 4 , and the transformation matrix T 2-3 is stored in the robot controller No. 3 .
  • a calibration rod is attached to wrists of two robots to be calibrated, and a distal end thereof is set so as to be a TCP (tool center point). Then, the distal ends of the calibration rods are positioned at three points (a triangle is formed with the three points being the vertexes) in a space that do not lie on the same straight line, and the positions are determined by the respective world ordinate system. Thereafter, the transformation matrix T 2-1 from the robot No. 1 to the robot No. 2 is calculated from the determined three position data on the world coordinate system of the robot No. 1 and three position data on the world coordinate system of No. 2 . Similarly, each transformation matrix is determined, and is stored in the nonvolatile memory of each robot controller.
  • FIG. 4 shows an example of designation information of master and slave robots.
  • the robots Nos. 1 - 3 are designated to cooperate in synchronism with the robot No. 1 used as a master robot and the robots Nos. 2 - 4 used as slave robots.
  • the robot No. 4 which is not designated as a master robot or slave robots may be used as normal robots, that is, they are operable independently while the master robot and the slave robots perform the synchronously cooperative operation.
  • the combination of the robots to be operated in synchronously cooperation are defined arbitrarily and the designation of master and slave robots in the combination is arbitrary.
  • one robot is selected to be a master robot, and one or more robots are selected to be slave robots among the rest of the robots connected by the communication line L.
  • FIG. 5 shows an example of an operation program to be executed by a robot controller for controlling a master robot.
  • “MASTER PROGRAM” is set as a synchronous operation data.
  • the data “SLAVE PROGRAM” is set in an operation program to be executed by a robot controller for controlling a slave robot.
  • the data “NORMAL PROGRAM” is set in an operation program to be executed by a robot controller for controlling a normal robot.
  • FIG. 6 shows an example of the execution sequences of the operation programs for respective robot controllers.
  • a normal program, a master program and a normal program are set to be executed sequentially.
  • a normal program, a slave program and a normal program are set to be executed sequentially.
  • only a normal program is set to be executed.
  • the robot controller for the robot No. 1 executes the master program and the robot controllers for the robots Nos. 2 and 3 execute the slave programs to perform a synchronously cooperative operation after completion of execution of the foregoing normal programs
  • the robot controller for the robot No. 4 executes the normal program irrespective of the operations of the other robots Nos. 1 - 3 .
  • stop procedure type numbers each representing a type of stop procedure to be performed in each robot controller are set and stored, as shown in FIG. 7, and a table of designation of the stop procedure type number for each of causes of stops.
  • the stop procedure type No. 1 is assigned to a cause of manual input of a hold signal and a cause of issuance of an alarm indicating deviation from operation area to adopt the deceleration stop.
  • the stop procedure type No. 3 is assigned to input of the emergency stop signal and an alarm of overheat to immediately stop the robot operation.
  • the stop procedure type No. 2 is assigned to input of a signal indicating an open of safety fence to perform the controlled stop.
  • the stop procedures have priority of execution. In this example, the larger number is assigned to the stop procedure having higher priority.
  • each program is stored in the nonvolatile memory 13 of each robot controller, the program is started to be executed. Then, the processor 10 of each robot controller 1 starts processing shown in a flowchart of FIGS. 9 to 16 .
  • Step S 1 the stored program is read (Step S 1 ), and it is determined whether the read program is a normal program or not (Step S 2 ).
  • Step S 2 the procedure proceeds to Step S 3 where information indicating “normal program” is set in a resister P.
  • Step S 4 the next program line is read (Step S 4 ) and it is determined whether the line is present or not (Step S 5 ). If the line is present, the motion start position (present position) on that line is subtracted from the taught target position (TCP position) programmed on that line to determine a distance of motion, and further the distance is divided by a taught operation velocity to determine a motion time. Also, the motion time is divided by a computation period of interpolation to determine the number of interpolation points (Step S 6 ).
  • Step S 6 an index i is set at “0” (Step S 6 ), and it is determined whether or not the index i is smaller than the number of interpolation points determined in Step S 6 (Step S 8 ). If the index i is smaller than the number of interpolation points, the procedure proceeds to Step S 9 where it is determined whether or not a stop procedure request is issued and a stop procedure is performed, if the stop procedure request is issued (Step S 9 ).
  • Step S 6 the distance of motion determined in Step S 6 is divided by the number of interpolation points and the quotient is multiplied by the sum (i+1) of the index i and “1”, and then the obtained value is added to the motion start position on that line, to obtain interpolation position data (Step S 10 ).
  • a motion amount (incremental amount) of each axis is determined based on this interpolation data (Step S 11 ), the motion amount of each axis is subjected to acceleration/deceleration processing (Step S 12 ) and commanded to a motor (Step S 13 ). Specifically, a motion command value of each axis, which has been subjected to acceleration/deceleration processing, is output to the axis control section 14 of the robot, loop control for position, velocity, current, etc. is carried out, and a servomotor for each axis of the robot mechanism section 2 is driven via the servo amplifier 17 .
  • Step S 14 the procedure returns to Step S 7 to repeatedly execute the processing in Steps S 8 through S 14 until the index i reaches the number of interpolation points.
  • Step S 3 the next program line is read.
  • the processing in Step S 3 and the subsequent steps is executed repeatedly until the read line becomes absent. If the line becomes absent, the processing of this normal program is completed.
  • Step S 1 and S 2 the next program is read, and it is determined whether the program is a normal program or not.
  • the master program is read for the robot No. 1
  • the slave program is read for the robots Nos. 2 and 3 .
  • the robot No. 4 continues the operation according to the normal program until the normal program terminates.
  • the procedure in the controllers of the robots No. 1 - 3 proceeds from Step S 2 to Step S 16 , where it is determined whether the read program is a master program or not. Since the controller of the robot No. 1 reads the master program, the processing of Steps S 17 through S 38 is started. Since the controllers of the robots No. 1 - 3 read the slave program, the procedure proceeds from Step S 16 to Step S 39 .
  • the processor 10 of the controller of the robot No. 1 which functions as a master robot controller, issues a notice of execution start preparation completion of the master program to the slave robots through the communication line L, referring to the definition of master and slave robot as shown in FIG. 4 (Step S 17 ), and determines whether or not notices of execution start preparation completion have been received from all notified slave robots (Step S 18 ).
  • the processing of Steps S 17 and S 18 is executed repeatedly until the notices are received.
  • the processor of the slave robot controller determines whether or not a notice of execution start preparation completion has been received from the master robot (Step S 39 ) and waits until the notice is received.
  • the number of the master robot from which the notice of execution start preparation completion is received is stored in the nonvolatile memory 13 (Step S 40 ), and a notice of execution start preparation completion of the slave robot is issued to the master robot via the signal line L (Step S 41 ).
  • the processing of Steps S 41 and S 42 is executed repeatedly until an execution start command is received from the master robot.
  • the notice of execution start preparation completion is exchanged between the master robot and the slave robots.
  • the master robot receives the notices of execution start preparation completion from all the slave robots (Step S 18 )
  • the execution start command is issued to all the slave robots (Step S 19 ).
  • Step S 18 When in the robots in which the synchronously cooperative operation is executed, the operations of all the robots that have been performed before the execution of synchronously cooperative operation have been finished, and the master robot has received the notice of execution start preparation completion from all the slave robots (in this case, robots No. 2 to No. 4 ) in Step S 18 , the processor of the master robot issues the execution start command to the slave robots (Step S 19 ).
  • the processor of the master robot stores the present position in the nonvolatile memory 13 as a start position of a synchronously cooperative operation (Step S 20 ), and stores information indicating midst of execution of the master program in a register P (Step S 21 ).
  • Step S 22 the next line of the program is read (Step S 22 ) and the processing in Steps S 23 through S 26 , which is the same as the above-described processing in Steps S 5 through S 8 .
  • the processing of the “stop command confirmation and procedure”, which is the same processing as Step S 9 is executed (Step S 27 ). If a stop procedure command is not issued, the processing of Step S 28 , which is the same as the above-described processing of Step S 8 , is executed to obtain the interpolation position data. That is, the interpolation position data is obtained by performing the following computation.
  • Interpolation position data motion start position of that line+ ( distance of motion ⁇ number of interpolation points ) ⁇ ( i+ 1)
  • the processor of the master robot sends the stored synchronously cooperative operation start position of the master robot and the interpolation position data obtained in Step S 28 to all the slave robots through the communication line L (Step S 29 ), determines the motion amount (incremental amount) on each axis based on the interpolation position data obtained in Step S 28 , which is the same processing as that of Steps S 11 , S 12 and S 13 , and performs acceleration/deceleration processing to issue commands to the motors (Steps S 30 , S 31 and S 32 ). Subsequently, the master robot waits until notices of interpolation position data receipt completion are sent from all the slave robots (Step S 33 ).
  • Step S 42 when the processor of the slave robot receives, in Step S 42 , the execution start command issued by the processor of the master robot in the processing in Step S 19 , the processor of the slave robot stores information indicating midst of execution of the slave program in the register P (Step S 43 ), and executes the same processing as that of Steps S 22 through S 26 . Specifically, the next line of the slave program is read, and if the line is present, the distance of motion, the motion time and the number of interpolation points by this line are determined, the index i is set to “0”, and it is determined whether or not the index i is smaller than the number of interpolation points (Steps S 44 through S 48 ).
  • Step SB 49 the stop confirmation and procedure is executed (Step SB 49 ) and if a stop procedure command is not issued, the distance of motion obtained in Step S 46 is divided by the number of interpolation points and the quotient is multiplied by a value obtained by adding 1 to the index i, and then the obtained sum is added to the motion start position on that line, to determine the interpolation position data (Step S 50 ).
  • Step S 51 the controller of the slave robot waits until the interpolation position data and the synchronously cooperative operation start position data from the master robot are received. If the received interpolation position data is not the data from the master robot identified by the robot number stored in Step S 40 (Step S 48 ), the slave robot issues an alarm and stops (Step S 53 ).
  • Step S 54 determines a transformation matrix to the motion amount of slave robot for the motion amount of the master robot based on the received synchronously cooperative operation start position data and interpolation position data (Step S 54 ), and determines corrected interpolation position data of the slave robot taking the motion amount of the master robot into consideration based on the determined transformation matrix and the interpolation position data of the slave robot obtained in Step S 50 (Step S 55 ).
  • P1 an arbitrary position in the space, which is different from P0
  • P0s a position at which P0 is viewed from the world coordinate system of slave robot
  • P1s a position at which P1 is viewed from the world coordinate system of slave robot
  • P0m a position at which P0 is viewed from the world coordinate system of master robot
  • P1m a position at which P1 is viewed from the world coordinate system of master robot
  • Ts ⁇ m a transformation matrix in the case where the world coordinate system of master robot is viewed from the world coordinate system of slave robot
  • T0s ⁇ 1s a transformation matrix from P0s to P1s in the world coordinate system of slave robot in the case of being viewed from a slave robot
  • P 1 m T 0 s ⁇ 1 s
  • T 0 s ⁇ 1 s Ts ⁇ m
  • INV means an inverse matrix
  • Ts ⁇ m is a transformation matrix in the case where the world coordinate system of master robot is viewed from the world coordinate system of slave robot (in the case where the master robot is the robot No. 1 and the slave robot is the robot No. 2 , this transformation matrix Ts ⁇ m is T 1-2 ), and it is set and stored in the nonvolatile memory of the slave robot by the calibration made first. Also, by making the calculation in Equation (5) taking P0m as the synchronously cooperative operation start position sent from the master robot and P1m as the master robot interpolation position sent from the master robot, the transformation matrix T0s ⁇ 1s for determining the motion amount in the world coordinate system of slave robot corresponding to the motion amount of master robot can be determined.
  • Interpolation position data of slave robot on which motion amount of master robot is reflected T0s ⁇ 1s
  • Step S 56 Based on the interpolation position data thus corrected, the motion amount on each axis is determined (Step S 56 ), acceleration/deceleration processing is performed (Step S 57 ), and a command is issued to the motor (Step S 58 ). Then, a notice of interpolation position data receipt is sent to the master robot (Step S 59 ), the index i is increased by “1” (Step S 60 ), and the processing returns to Step S 48 .
  • Steps S 48 through S 60 The processing of Steps S 48 through S 60 is executed repeatedly until the index i reaches the number of interpolation points.
  • Step S 33 when it is determined in Step S 33 that the master robot controller has received the notices of interpolation position data receipt, which are sent by the processors of respective slave robots in the processing of Step S 58 , from all the slave robot controllers, the index i is increased by 1′′ (Step S 34 ), and the processing returns to Step S 26 to repeatedly execute the processing of Steps S 26 through S 34 until the index i reaches the number of interpolation points.
  • Step S 26 If the index i reaches the number of interpolation points, the procedure proceeds from Step S 26 to Step S 22 , to execute the processing of Step S 22 and the subsequent steps.
  • the controller of the slave robot also executes the processing in Steps S 48 through S 60 repeatedly, and when the index i reaches the number of interpolation points, the procedure proceeds from Step S 48 to Step S 44 , to execute the processing of Step S 44 and the subsequent steps.
  • the controllers of the master robot and slave robot execute the above-described processing repeatedly as long as a new line is read from the master program and slave program.
  • a new line to be read becomes absent, the procedure for the master robot proceeds from Steps S 23 to Step S 35 . Also, the procedure for the slave robot proceeds from Steps S 45 to Step S 61 .
  • Step S 35 it is assumed that a new line to be read in the master program becomes absent for the master robot earlier than for the slave robot and the procedure of the processor of the master robot proceeds to Step S 35 earlier than that of the slave robot.
  • the processor of the master robot sends the latest position interpolation data determined in Step S 28 and the synchronously cooperative operation start position data stored in the registers to the slave robot via the communication line L (Step S 35 ), and determines whether or not the notices of completion have been sent from all the slave robots (Step S 36 ).
  • the processor of the master robot executes the processing of Steps S 35 and S 36 repeatedly until the notices of completion have been sent from all the slave robots, and continues to send the finally sent interpolation position data and synchronously cooperative operation start position data. Specifically, although the operation of the master robot is stopped, the finally sent interpolation position data and synchronously cooperative operation start position data are sent continuously to the slave robots.
  • the slave robot executes the processing of Steps S 44 through S 60 as long as a command line is read from the slave program.
  • the data received in Step S 51 are the interpolation position data and synchronously cooperative operation start position data that were finally sent from the master robot, the transformation matrix determined by the processing in Step S 54 is the same.
  • Step S 55 the same correction (amount) is made for the slave robots (Step S 55 ) to be controlled and driven based on the slave program.
  • the procedure for the slave robot proceeds to Step S 61 , where the notice of completion is issued to the master robot via the communication line, and then determines whether or not a completion command has been sent from the master robot (Step S 62 ). If the completion command has not been sent, the stop confirmation and procedure is executed (Step S 63 ).
  • Step S 46 the distance of motion of the latest line, determined in Step S 46 , is divided by the number of interpolation points, the quotient is multiplied by the number of interpolation points indicated by the index i, and the obtained value is added to the motion start position of the latest line to determine the interpolation position data (Step S 63 ).
  • this interpolation position data is the final position, and is determined finally by the processing of Step S 50 of the latest line.
  • This data is the same as the interpolation position data stored in the register, so that it need not be determined by performing calculations again and can be obtained merely by reading the value stored in the register.
  • Step S 65 through S 72 which is the same as the processing in Steps S 51 through S 58 , is executed.
  • the interpolation position data determined in Step S 64 is the same as the interpolation position data determined in Step S 50 in the latest line, and for the transformation matrix determined in Step S 68 , the synchronously cooperative operation start position data and interpolation position data sent from the master robot are not changed. Therefore, this correction (amount) is the same as the correction (amount) determined finally in the latest line.
  • the corrected interpolation position data determined in Step S 69 is the same as the latest interpolation position data determined in Step S 55 in the latest line.
  • Step S 61 through S 72 The processing of Steps S 61 through S 72 is executed repeatedly until the completion command is sent from the master robot.
  • Step S 62 information indicating completion of the program is stored in the register P (Step S 73 ) and the processing of the slave program terminates.
  • Step S 36 when the notices of completion are received from all the slave robots (Step S 36 ), the processor of the master robot issues the completion command to all the slave robots (Step S 37 ) and stores information indicating completion of the program in the register P (Step S 38 ). Upon receipt of this completion command, the slave robot stops its operation, as described above and this processing for synchronously cooperative operation terminates.
  • Step S 64 the interpolation position data determined in Step S 64 is, as described above, the latest interpolation position data in the latest line of the slave program and the final command position.
  • the interpolation position data corrected by using the transformation matrix determined in Step S 68 is determined, and further the motion amount on each axis is determined, the acceleration/deceleration processing is performed, and the motor for each axis is driven (Steps S 69 through S 72 ).
  • Step S 36 the controller of the master robot receives the notice of completion from all the slave robot controllers (Step S 36 ), it issues the notice of completion to all the slave robot controllers (Step S 37 ), stores information indicating the termination of the program in the register P (Step S 38 ), and stops the operation of the master robot.
  • Step S 62 the controller of the slave robot also stores information indicating the termination of the program in the register P (Step S 72 ) and stops the operation of the slave robot.
  • Steps S 1 -S 15 are executed.
  • FIG. 15 shows the “stop procedure command confirmation and procedure” to be executed in Steps S 9 , S 27 , S 49 and S 63 as mentioned.
  • FIG. 16 shows a “stop procedure management task” for monitoring whether or not a stop command is issued and determining a stop procedure command.
  • Each robot controller executes the monitor processing management task processing at every predetermined period.
  • the processor 10 of the robot controller 1 initializes a register SELF LVL for storing the stop procedure type number for the robot connected with the robot controller and registers OTHER LVL for storing the stop procedure type numbers for the other robots connected through the communication line L, to “0” (Step SB 21 ).
  • the registers OTHER LVL are provided respectively for the robot controllers for the other robots.
  • Step SB 22 it is determined whether or not a stop procedure request (cause for stopping) is issued for the robot connected to the robot controller (Step SB 22 ). If a stop procedure request (cause for stopping) is issued, the stop procedure type number for the cause for stopping (stop procedure request) is determined with reference to the setting of the designation of the stop procedure type number for each of the cause for stopping stored in the nonvolatile memory as shown in FIG. 8, and the determined stop procedure type number is stored in the register SELF LVL (Step SB 32 ).
  • Step SB 23 The stop procedure type numbers sent from the other robot controllers through the communication line L and the robot numbers associated with the other robot controllers are received and stored, and the stop procedure type number stored in the SELF LVL is sent to the other robot controllers (Step SB 23 ). It is determined whether or not the operation program in execution is the master program or the slave program (Step SB 24 ). In the case where a normal program is presently in execution in the example as shown in FIG. 6, the determination result in Step SB 24 is NO and the procedure proceeds to Step SB 26 . In Step SB 26 , it is determined whether or not any one of the register SELF LVL and the registers OTHERS LVL stores a value other than “0”.
  • the register SELF LVL stores a value other than “0” when the stop procedure number is set in Step SB 32 and stores “0” set in Step SB 21 when a stop procedure request (a kind of cause for stopping) is not issued. In this case where the robot controller is in execution of a normal program, all of the registers OTHERS LVL store “0” since the processing of Steps SB 25 and SB 33 is not executed.
  • Step SB 26 If all of the register SELF LVL and the registers OTHER LVL store “0”, the procedure proceeds from Step SB 26 to Step SB 31 to set the stop procedure type command data STOP to “0”.
  • the setting of “0” in the stop procedure type command data STOP means not to execute any stop procedure, as describe later. If it is determined that any one of the register SELF LVL and the registers OTHER LVL store a number other than “0” in Step SB 26 , the larger one of the numbers stored in the register SELF LVL and the registers OTHER LVL is adopted as the stop procedure type number (Step SB 27 ).
  • the stop procedure type for the robot is determined solely by the number stored in the register SELF LVL. It is determined whether the type of the stop procedure is the decelerating stop (the stop procedure type No. 1), the controlling stop (the stop procedure type No. 2) or the immediate stop (the stop procedure type No. 3) in Steps SB 28 - 30 .
  • the stop procedure command data STOP is set to “1” when the stop procedure type is determined as the decelerating stop, set to “2” when the stop procedure type is determined as the controlling stop and set to “3” when the stop procedure type is determined as the immediate stop (Steps SB 34 , SB 35 and SB 36 ).
  • the stop procedure type number determined according to the cause for stopping occurred in the robot connected to the robot controller is set as the stop procedure command data STOP in the case where the robot controller is in execution of the normal program. Then the stop procedure of the determined type is executed in the “stop confirmation and processing” as shown in FIG. 15.
  • Step SB 25 it is determined whether or not a stop procedure request (including the stop procedure type number) has been issued from any one of the robots performing the synchronously cooperative operation according to the master/slave robot definition as shown in FIG. 4. If it is determined that a stop procedure request has been issued from any one of the robots performing the synchronously cooperative operation, the stop procedure type number is set to the associated resister OTHER LVL (Step SB 33 ) and the procedure proceeds to Step SB 26 .
  • a stop procedure request including the stop procedure type number
  • Step SB 26 If a plurality of stop procedure requests are issued from the robots performing the synchronously cooperative operation, the stop procedure type numbers are set to the associated registers OTHER LVL, respectively. If a stop procedure type request has been issued from the robot not performing the synchronously cooperative operation, the procedure proceeds to Step SB 26 omitting the processing of Step SB 33 .
  • Step SB 26 it is determined whether any one of the register SELF LVL and the registers OTHER LVL store a number other than “0”. If all of the registers store “0” the procedure proceeds to Step SB 31 , and any one of the registers stores a number other than “0”, the largest one of the stored numbers is selected as the stop procedure type number (Step SB 27 ). Then, it is determined whether the stop procedure type number is “1”, “2” or “3” and the determined number is set in the stop procedure command data STOP (Steps SB 34 , SB 35 and SB 36 ).
  • the “stop procedure command confirmation & processing” as shown in FIG. 15 is executed in Steps S 9 , S 27 , S 49 and S 63 in execution of a normal program, a master program and a slave program, as mentioned, to confirm an issuance of a stop procedure command and perform the stop procedure to stop the robot operation if a stop procedure command has been issued.
  • Steps SB 1 -SB 3 the stop procedure command data STOP is discriminated. If the data STOP is discriminated to be “0” (Step SB 2 ), it means that a stop procedure command has not been issued and therefore the procedure returns to the main program. If the stop procedure command data STOP is discriminated to be “1” which represents the decelerating stop (Step SB 2 ), motion amounts (incremental amounts) for respective axes of the robot are set to “0” and the acceleration/deceleration processing is performed to output the results of the processing to the motors until the processing is terminated, to decelerate the motors to be stopped (Steps SB 6 -SB 9 ).
  • Step SB 3 If the stop procedure command data STOP is discriminated to be “2” which represents the controlled stop (Step SB 3 ), the motion amounts (incremental amounts) for the respective axes are set to “0” and the acceleration/deceleration processing is performed to output the results of the processing to the motors until the processing is terminated, to decelerate the motor to be stopped (Steps SB 10 -SB 13 ), and further the power supply to the motor is shut down to turn off the servo excitation (Steps SB 14 ) to terminate the processing.
  • Steps SB 4 , SB 5 If the stop procedure command data STOP is discriminated to be none of “0”, “1” and “2”, namely it is discriminated to be “3” which represents the immediate stop, the command amounts to the motors are set to “0” to immediately stop the motors (Steps SB 4 , SB 5 ).
  • the stop procedure of the type in accordance with the cause for stopping is selected and executed in the respective robot controllers.
  • the processing of FIG. 15 is performed at Step S 27 in execution of the master program to stop the motion of the master robot, and in the slave robot controller the processing of FIG. 15 is performed at Steps S 49 and S 63 in execution of the slave program to stop the operation of the slave robot.
  • the processing is modified by omitting the processing of Steps SB 24 , SB 25 and SB 33 , and the processing of Step SB 23 is replaced by processing of storing the stop procedure type numbers into the registers OTHER LVL for the respective robots, and the procedure proceeds from Step SB 23 to Step SB 26 to execute the processing of Step SB 26 and the subsequent Steps.
  • Step SB 23 If all of the registers SELF LVL and OTHER LVL store “0”, the procedure proceeds to Step SB 31 , and any of the registers SELF LVL and OTHER LVL store a number other than “0”, the largest one of the stored numbers is selected and set as the stop procedure command data STOP.
  • any of the other robots to be stopped in the same type of stop procedure may be designated in advance.
  • a group of robots are designated and when a cause for stop occurs in any of the robots in the group, all of the robots in the group is stopped in the same type of stop procedure.
  • a group of robots to be stopped in the same type of stop procedure are defined and stored using the robot numbers.
  • Step SB 24 is deleted and the procedure proceeds from Step SB 23 to Step SB 25 where it is determined whether or not a stop procedure request is issued from a robot in the group to which the robot controller belongs. Only when the stop procedure command is issued from a robot in the group to which the robot controller belongs, the procedure proceeds to Step SB 33 to store the stop procedure type number into the register OTHER LVL and the processing of Step SB 26 and the subsequent processing are performed.
  • Step SB 33 Only when the stop procedure command is issued from a robot in the group to which the robot controller belongs, all of the robot in the group are stopped in the same stop procedure type.
  • the defined master and slave robots may be automatically set to be in the same group.
  • the processing of Step SB 24 in the stop procedure managing task shown in FIG. 16 is necessary, but in order to stop the robot in the group when a stop causing matter occurs in any of the robots, irrespective of the synchronously cooperative operation, the processing of Step SB 24 is omitted.
  • Step SB 23 in the stop procedure managing task shown in FIG. 16 the stop procedure type number is sent and received between the robot controllers connected through the communication lines.
  • the cause of stop may be sent and received between the robot controllers in place of the stop procedure type number.
  • the stop procedure type number is determined based on the received cause of stop using the set correspondence table of the cause of stop and the stop procedure type number as shown in FIG. 8.
  • the PLC may be provided on the robot control system in which the robot controllers are connected through the communication lines such as Ethernet, and the respective robot controllers and the PLC are connected by means of parallel I/O and the data relating to the position information for the synchronously cooperative operation are transmitted through the communication lines such as Ethernet and the data relating to the stop procedure may be transmitted through the parallel I/O.
  • a case of independent input/output and a case of binary data input/output may be adopted as the method of transmitting the stop procedure information, as shown in FIGS. 20 a and 20 b.
  • an input/output signal is assigned for each of the stop procedure type. For example, DO 3 is outputted for stopping the robot in the immediate stop type, and DI 3 is inputted when the robot is to be stopped in the immediate stop type.
  • each stop procedure type is expressed by binary data.
  • all the stop procedure types can be represented by two binary signals.
  • two DO signals are outputted for stopping the robot in the immediate stop type and, two DI signals are inputted when the robot is to be stopped in the immediate stop type.
  • the robot and the other robots are stopped in the same type of stopping procedure, to prevent relative displacement of relative positions between the robots in performing a synchronously cooperative operation. Since a deceleration stop and a controlled stop can be adopted as the stopping procedure types, frequency of an immediate stop conventionally adopted as the stopping procedure is lowered to reduce a load on a robot mechanism.

Abstract

A robot controller for use in a robot control system with a plurality of robots connected one another through a communication path. When a cause for stopping occurs in one or more robots, other robots are also stopped in the same type of stopping procedure. A priority of execution on a plurality of stop procedure types is determined. When a cause for stopping occurs in one or more robots in the robots connected through the communication line or in the robots in synchronously cooperative operation, all of the robots connected through the communication line or the robots in synchronously cooperative operation are stopped in the same type of stopping procedure. If different causes for stopping occur in the robots, a stopping procedure type having higher priority in the stopping procedures determined in accordance with the different causes of stopping is adopted to stop all of the robots in the same type of stopping procedure. Since the robots are stopped in the same type of stopping procedure, displacement of relative positions of the robots in synchronously cooperative operation is made small.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0001]
  • The present invention relates to a robot controller for use in a robot system in which robot controllers are connected with one another through a communication path, and more particularly to a robot controller for use in a robot system for performing a synchronously cooperative operation by a plurality of robots. [0002]
  • 2. Description of the Related Art [0003]
  • There is known a robot control system in which a plurality of robot controllers are connected through a communication path for performing a synchronously cooperative operation by a plurality of robots respectively controlled by the robot controllers. In such a system, when one robot is to be stopped for a certain cause, it is necessary to stop the other robots in performing the synchronously cooperative operation. Since a plurality of robots operate in synchronous cooperation, if one robot is stopped and the other robots continues the synchronously cooperative operation, the robots may cause interferences or fail to complete a part of the operation. Therefore, in the conventional robot control system, an emergency stop signal is issued from an upper PLC (programmable logic controller) to all the robots to be stopped immediately. [0004]
  • There are generally known different types of methods for stopping a robot. For example, in stopping a robot for a cause of an input of a hold signal, there are known (1) a deceleration stop of stopping the robot with an execution of acceleration/deceleration processing so as not to exert an excessive load on a robot mechanism; (2) a controlled stop of stopping a robot with an execution of the acceleration/deceleration processing and also a shut off of an excitation of servo motors; and (3) an immediate stop of stopping a robot by immediately shut off servo amplifiers by an emergency stop signal. [0005]
  • In the above system for controlling a plurality of robots, the above method (3) of immediate stop which effects the smallest slowdown amount is adopted to minimize the relative positional displacement of the robots in stopping. [0006]
  • The above immediate stop, however, had better be avoided since a large load is exerted on the robot mechanism. If all of the robots in performing the synchronously cooperative operation are stopped by the method of immediate stop when one of the robots is to be stopped for a certain cause in the above robot control system, a frequency of the immediate stop of the robots is made larger to be unpreferable. Depending on a cause for stop, it is preferable to stop the robots according to the method (1) of deceleration stop or the method (2) of controlled stop. [0007]
  • In stopping the robots in synchronously cooperative operation, it is necessary to stop all of the robots in synchronously cooperative operation by the same method of stopping to maintain the synchronous motion since different stopping methods cause differences between motion amounts of the respective robots so that a considerable disagreement is caused on the relative positions of the stopped robots with respect to the relative positions of the robots in synchronously cooperative operation to make a problem on the robot operation. For example, in the case of transferring an object by a plurality of robots in synchronous cooperation, there is a possibility of dropping the object by the disagreement of the relative positions of the robots. [0008]
  • SUMMARY OF THE INVENTION
  • According to an aspect of the present invention, a robot controller comprises: storing means for storing assignment information on types of stopping procedure assigned for each of a plurality of causes for stopping the robot; detecting means for detecting a first cause for stopping occurred in the robot associated with the robot controller; designating means for designating a first type of stopping procedure based on the detected first cause for stopping and the assignment information stored in the storing means; sending means for sending identification information on the designated first type of stop procedure to another robot controller through the communication path; receiving means for receiving identification information on a second type of stop procedure sent from another robot controller through the communication path; and determining means for determining a type of the procedure of stopping the associated robot based on the identification information on the first type of stopping procedure or the identification information on the second type of stopping procedure. [0009]
  • In place of sending and receiving the identification information on the type of stop procedure, the sending means may send identification information on the detected first cause for stopping to another robot controller through the communication path, and receiving means may receive identification information on a second cause for stopping occurred in a robot associated with another robot controller sent from another robot controller through the communication path and designating a second type of stop procedure based on the assignment information stored in the storing means. [0010]
  • The robot controller may further comprise specifying means for specifying one or more other robots to be stopped simultaneously with the associated robot when the first cause occurs. In this case, the sending means may send identification information on the first type of stop procedure or the first cause for stopping to one or more other robot controllers of the specified one or more other robots through the communication path, and the receiving means may receive identification information on a second type of stop procedure or a second cause for stopping from the one or more other robot controllers through the communication path. [0011]
  • The robot controller may further comprise means for sending and receiving information for performing a synchronized or cooperative operation. through the communication path, and means for enabling the determining means only when the associated robot is in performing a synchronized or cooperative operation with another robot. [0012]
  • The causes for stopping the robot may include an emergency stop command inputted in the robot and an alarm occurred in the robot, and the types of stopping procedure may be classified by whether or not a power supply is shut off and/or whether or not motors for driving the robot are subjected to acceleration/deceleration processing.[0013]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of an essential part of a robot including a robot controller for controlling an associated robot according to an embodiment of the present invention; [0014]
  • FIG. 2 is a schematic diagram showing an example of a robot system with a plurality of robots connected by a communication line using a plurality of robot controllers as shown in FIG. 1; [0015]
  • FIG. 3 is a schematic view showing another example of a robot system with a plurality of robots connected by a communication line using a plurality of robot controllers as shown in FIG. 1; [0016]
  • FIG. 4 is a diagram of a setting example of definition information on master and slave robots for performing a synchronously cooperative operation; [0017]
  • FIG. 5 is an example of definition information on a master robot set in a master program; [0018]
  • FIG. 6 is a diagram of an execution sequence of operation programs for respective robots; [0019]
  • FIG. 7 is an example of assignment of stop procedure types on respective stop procedure type numbers; [0020]
  • FIG. 8 is an example of assignment of stop procedure type numbers on respective causes for stop procedure; [0021]
  • FIG. 9 is a partial flowchart of processing to be executed by the processor of each robot controller, which is mainly a flowchart of processing to be performed by the robot controller for the robot to operate independently (execution of a normal program); [0022]
  • FIG. 10 is a continuation of the flowchart of FIG. 9, which is a part to be executed by the processor of a master robot controller (execution of a master program); [0023]
  • FIG. 11 is a continuation of the flowchart of FIG. 10 to be executed by the processor of the master robot controller (execution of the master program); [0024]
  • FIG. 12 is a continuation of the flowchart of FIG. 10, which is a part of to be executed by a slave robot controller (execution of a slave program); [0025]
  • FIG. 13 is a continuation of the flowchart of FIG. 12 to be executed by the slave robot controller (execution of the slave program); [0026]
  • FIG. 14 is a continuation of the flowchart of FIG. 13 to be executed by the slave robot (execution of the slave program); [0027]
  • FIG. 15 is a flowchart of a subroutine “stop command confirmation & prosecution” in the above flowchart; [0028]
  • FIG. 16 is a flowchart of “stop procedure management task”; [0029]
  • FIG. 17 is a schematic view of a method for determining interpolation position data of a slave robot on which the motion amount of a master robot is reflected; [0030]
  • FIG. 18 is a schematic diagram showing a still another example of a robot system with a plurality of robots connected one another using a plurality of robot controllers; [0031]
  • FIG. 19 is a schematic diagram showing a still another example of a robot system with a plurality of robots connected one another using a plurality of robot controllers; and [0032]
  • FIGS. 20[0033] a and 20 b are diagrams for showing examples of communication method to be adopted in the robot system as shown in FIGS. 18 and 19.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • FIG. 1 shows a robot controller for controlling each associated robot for use in a robot system in which a plurality of robot controllers are connected with one another through a communication path designed for a synchronously cooperative operation. [0034]
  • In FIG. 1, a [0035] robot controller 1 has a processor 10 for generally controlling a robot mechanism 2 and the robot controller 1. The processor 10 is connected with a ROM 11, a RAM 12, a nonvolatile memory 13, a robot axis control section 14, a communication module 15, a teaching panel interface 16, etc. via a bus 18. The ROM 11 stores a system program to be executed by the processor 10, and the nonvolatile memory 13 stores set values of various parameters and a taught program for an operation to be performed by the robot mechanism 2. The RAM 12 is used for temporarily storage of data. The robot axis control section 14 performs feedback controls of position, velocity and torque (current) of each motor for each axis by the digital servo control using a processor based on motion commands fro each axis, to drive the servomotor for each axis of the robot mechanism section 2 via a servo amplifier 17. The communication module 15 is connected to another robot controller by a communication path. The teaching operation panel interface 16 is connected with a teaching operation panel 3.
  • The above basic configuration of each [0036] robot controller 1 is the same as that of the conventional one, and the robot controllers of such configuration are connected to one another via a signal path of communication lines, to constitute a robot control system for a synchronously cooperative operation of a plurality of robots.
  • The following is a description on a robot control system for controlling four robots by the robot controllers connected by the signal path for respectively controlling the associated robots, to sequentially perform individual operations and a synchronously cooperative operation of the robots in an arbitrary combination. [0037]
  • FIGS. 2 and 3 show examples of connection of the four robot controllers connected by a communication network of Ethernet. Any network other than Ethernet may be used. In an example of FIG. 2, the robot controllers No. [0038] 1 to No. 4 are connected to one another by signal lines L to form a signal path. In the example of FIG. 3, the robot controllers Nos. 1-4 are connected to one another by using a hub. To identify each robot connected by the communication lines L, each robot number is applied to each robot, and in the nonvolatile memory of each robot, the robot number assigned to that robot is set and stored. In the examples shown in FIGS. 2 and 3, the number of No. 1 to No. 4 are set and stored. In the following description, No. 1 to No. 4 are used for robot No. 1 to No. 4 and robot controller No. 1 to No. 4. Also, robots No. 1 to No. 4 are used.
  • A transformation matrix from each robot to another robot is set by calibrating the installation position between the robots in construction of the robot control system. For example, when the robot No. [0039] 2 is viewed from the robot No. 1, it is necessary to determine a position in a world coordinate system of the robot No. 1 at which a world coordinate system of the robot No. 2 lies. For this purpose, for example, a transformation matrix T2-1 from the world coordinate system of the robot No. 1 to the world coordinate system of the robot No. 2 is determined. This is done for all patterns. However, since the inverse matrix of the transformation matrix T2-1 from No. 1 to No. 2 is the transformation matrix from No. 2 to No. 1, when the transformation matrix from No. 1 to No. 2 is determined, it is unnecessary to determine the transformation matrix from No. 2 to No. 1. The transformation matrix thus determined is stored in the nonvolatile memory 13 of each robot controller. For example, the transformation matrix T1-2 from No. 2 to No. 1 is stored in the controller of the robot No. 2. Similarly, each transformation matrix is stored in the nonvolatile memory 13 of each robot controller, for example, the transformation matrix T1-3 from No. 3 to No. 1 is stored in the robot controller No. 3, the transformation matrix T1-4 from No. 4 to No. 1 is stored in the robot controller No. 4, and the transformation matrix T2-3 is stored in the robot controller No. 3.
  • In the calibration method, as having been carried out so far, a calibration rod is attached to wrists of two robots to be calibrated, and a distal end thereof is set so as to be a TCP (tool center point). Then, the distal ends of the calibration rods are positioned at three points (a triangle is formed with the three points being the vertexes) in a space that do not lie on the same straight line, and the positions are determined by the respective world ordinate system. Thereafter, the transformation matrix T[0040] 2-1 from the robot No. 1 to the robot No. 2 is calculated from the determined three position data on the world coordinate system of the robot No. 1 and three position data on the world coordinate system of No. 2. Similarly, each transformation matrix is determined, and is stored in the nonvolatile memory of each robot controller.
  • A combination of robots to be synchronously operated for cooperation are determined, and a master robot and one or more slave robots in the combination are designated in the robot control system as shown in FIGS. 2 and 3. FIG. 4 shows an example of designation information of master and slave robots. The robots Nos. [0041] 1-3 are designated to cooperate in synchronism with the robot No. 1 used as a master robot and the robots Nos. 2-4 used as slave robots.
  • The robot No. [0042] 4 which is not designated as a master robot or slave robots may be used as normal robots, that is, they are operable independently while the master robot and the slave robots perform the synchronously cooperative operation.
  • The combination of the robots to be operated in synchronously cooperation are defined arbitrarily and the designation of master and slave robots in the combination is arbitrary. In the combination of the robots for synchronously cooperative operation, one robot is selected to be a master robot, and one or more robots are selected to be slave robots among the rest of the robots connected by the communication line L. [0043]
  • The definition of the combination of the master and slave robots is set in operation programs to be executed by respective robot controllers. FIG. 5 shows an example of an operation program to be executed by a robot controller for controlling a master robot. In this operation program, “MASTER PROGRAM” is set as a synchronous operation data. The data “SLAVE PROGRAM” is set in an operation program to be executed by a robot controller for controlling a slave robot. The data “NORMAL PROGRAM” is set in an operation program to be executed by a robot controller for controlling a normal robot. [0044]
  • A sequence of execution of the operation programs is determined for each robot controller. FIG. 6 shows an example of the execution sequences of the operation programs for respective robot controllers. For the robot No. [0045] 1, a normal program, a master program and a normal program are set to be executed sequentially. For the robots Nos. 2 and 3, a normal program, a slave program and a normal program are set to be executed sequentially. For the robot No. 4, only a normal program is set to be executed.
  • According to the example shown in FIG. 6, the following operation is performed. [0046]
  • (1) First, all the robot controllers execute normal programs to operate the robots No. [0047] 1 to No. 4 independently
  • (2) The robot controller for the robot No. [0048] 1 executes the master program and the robot controllers for the robots Nos. 2 and 3 execute the slave programs to perform a synchronously cooperative operation after completion of execution of the foregoing normal programs
  • (3) The robot controllers for the robots Nos. [0049] 1-3 execute the normal programs after completion of the synchronously cooperative operation
  • (4) The robot controller for the robot No. [0050] 4 executes the normal program irrespective of the operations of the other robots Nos. 1-3.
  • In the [0051] nonvolatile memory 13 of the robot controller for each of the robots Nos. 1-4, stop procedure type numbers each representing a type of stop procedure to be performed in each robot controller are set and stored, as shown in FIG. 7, and a table of designation of the stop procedure type number for each of causes of stops. In the example shown in FIGS. 7 and 8, the stop procedure type No. 1 is assigned to a cause of manual input of a hold signal and a cause of issuance of an alarm indicating deviation from operation area to adopt the deceleration stop. The stop procedure type No. 3 is assigned to input of the emergency stop signal and an alarm of overheat to immediately stop the robot operation. The stop procedure type No. 2 is assigned to input of a signal indicating an open of safety fence to perform the controlled stop. The stop procedures have priority of execution. In this example, the larger number is assigned to the stop procedure having higher priority.
  • Thus, after each program is stored in the [0052] nonvolatile memory 13 of each robot controller, the program is started to be executed. Then, the processor 10 of each robot controller 1 starts processing shown in a flowchart of FIGS. 9 to 16.
  • First, the stored program is read (Step S[0053] 1), and it is determined whether the read program is a normal program or not (Step S2). In the above-described example, since each robot reads a normal program as shown in FIG. 6, the procedure proceeds to Step S3 where information indicating “normal program” is set in a resister P. Then, the next program line is read (Step S4) and it is determined whether the line is present or not (Step S5). If the line is present, the motion start position (present position) on that line is subtracted from the taught target position (TCP position) programmed on that line to determine a distance of motion, and further the distance is divided by a taught operation velocity to determine a motion time. Also, the motion time is divided by a computation period of interpolation to determine the number of interpolation points (Step S6).
  • Next, an index i is set at “0” (Step S[0054] 6), and it is determined whether or not the index i is smaller than the number of interpolation points determined in Step S6 (Step S8). If the index i is smaller than the number of interpolation points, the procedure proceeds to Step S9 where it is determined whether or not a stop procedure request is issued and a stop procedure is performed, if the stop procedure request is issued (Step S9). If the stop procedure request is not issued, the distance of motion determined in Step S6 is divided by the number of interpolation points and the quotient is multiplied by the sum (i+1) of the index i and “1”, and then the obtained value is added to the motion start position on that line, to obtain interpolation position data (Step S10).
  • A motion amount (incremental amount) of each axis is determined based on this interpolation data (Step S[0055] 11), the motion amount of each axis is subjected to acceleration/deceleration processing (Step S12) and commanded to a motor (Step S13). Specifically, a motion command value of each axis, which has been subjected to acceleration/deceleration processing, is output to the axis control section 14 of the robot, loop control for position, velocity, current, etc. is carried out, and a servomotor for each axis of the robot mechanism section 2 is driven via the servo amplifier 17.
  • Next, the index i is increased by “1” (Step S[0056] 14), and the procedure returns to Step S7 to repeatedly execute the processing in Steps S8 through S14 until the index i reaches the number of interpolation points. When the index i reaches the number of interpolation points, the procedure proceeds from Step S8 to Step S3 where the next program line is read. The processing in Step S3 and the subsequent steps is executed repeatedly until the read line becomes absent. If the line becomes absent, the processing of this normal program is completed.
  • Then, the next program is read, and it is determined whether the program is a normal program or not (Steps S[0057] 1 and S2). In the example shown in FIG. 6, the master program is read for the robot No. 1, and the slave program is read for the robots Nos. 2 and 3. The robot No. 4 continues the operation according to the normal program until the normal program terminates. The procedure in the controllers of the robots No. 1-3 proceeds from Step S2 to Step S16, where it is determined whether the read program is a master program or not. Since the controller of the robot No. 1 reads the master program, the processing of Steps S17 through S38 is started. Since the controllers of the robots No. 1-3 read the slave program, the procedure proceeds from Step S16 to Step S39.
  • The [0058] processor 10 of the controller of the robot No. 1, which functions as a master robot controller, issues a notice of execution start preparation completion of the master program to the slave robots through the communication line L, referring to the definition of master and slave robot as shown in FIG. 4 (Step S17), and determines whether or not notices of execution start preparation completion have been received from all notified slave robots (Step S18). The processing of Steps S17 and S18 is executed repeatedly until the notices are received.
  • On the other hand, the processor of the slave robot controller determines whether or not a notice of execution start preparation completion has been received from the master robot (Step S[0059] 39) and waits until the notice is received. When the notice has been received, the number of the master robot from which the notice of execution start preparation completion is received is stored in the nonvolatile memory 13 (Step S40), and a notice of execution start preparation completion of the slave robot is issued to the master robot via the signal line L (Step S41). The processing of Steps S41 and S42 is executed repeatedly until an execution start command is received from the master robot.
  • Thus, the notice of execution start preparation completion is exchanged between the master robot and the slave robots. When the master robot receives the notices of execution start preparation completion from all the slave robots (Step S[0060] 18), the execution start command is issued to all the slave robots (Step S19).
  • When the normal and independent operation of each robot is first performed and then the synchronously cooperative operation is performed with the robots Nos. [0061] 1-3 as shown in FIG. 6, even if the master robot finishes the execution of the normal program and reads the next master program, the synchronously cooperative operation is not started until the notices of execution start preparation completion are received from all the slave robots. Also, unless the slave robot finishes the execution of the preceding normal program, the slave robot does not perform the processing of Steps S1, S2, S16, S39, and naturally, it does not issue the notice of execution start preparation completion to the master robot in Step S41. Therefore, the next synchronously cooperative operation is not executed until all the robots finish the processing of the respective normal programs.
  • Inversely, even when the processing of the normal program of the master robot completes latest, the notice of execution start preparation completion is not issued from the master robot to each of the slave robots, so that the subsequent synchronously cooperative operation is not started until the master robot completes the processing of the normal program and all the robots complete the preceding normal operations. [0062]
  • When in the robots in which the synchronously cooperative operation is executed, the operations of all the robots that have been performed before the execution of synchronously cooperative operation have been finished, and the master robot has received the notice of execution start preparation completion from all the slave robots (in this case, robots No. [0063] 2 to No. 4) in Step S18, the processor of the master robot issues the execution start command to the slave robots (Step S19). The processor of the master robot stores the present position in the nonvolatile memory 13 as a start position of a synchronously cooperative operation (Step S20), and stores information indicating midst of execution of the master program in a register P (Step S21). Then, the next line of the program is read (Step S22) and the processing in Steps S23 through S26, which is the same as the above-described processing in Steps S5 through S8. Specifically, if a programmed line is present, the distance of motion, the motion time and the number of interpolation points are determined, and the index i is set to “0”. If the index i is smaller than the number of interpolation points, the processing of the “stop command confirmation and procedure”, which is the same processing as Step S9, is executed (Step S27). If a stop procedure command is not issued, the processing of Step S28, which is the same as the above-described processing of Step S8, is executed to obtain the interpolation position data. That is, the interpolation position data is obtained by performing the following computation.
  • Interpolation position data=motion start position of that line+(distance of motion÷number of interpolation points)×(i+1)
  • The processor of the master robot sends the stored synchronously cooperative operation start position of the master robot and the interpolation position data obtained in Step S[0064] 28 to all the slave robots through the communication line L (Step S29), determines the motion amount (incremental amount) on each axis based on the interpolation position data obtained in Step S28, which is the same processing as that of Steps S11, S12 and S13, and performs acceleration/deceleration processing to issue commands to the motors (Steps S30, S31 and S32). Subsequently, the master robot waits until notices of interpolation position data receipt completion are sent from all the slave robots (Step S33).
  • On the other hand, when the processor of the slave robot receives, in Step S[0065] 42, the execution start command issued by the processor of the master robot in the processing in Step S19, the processor of the slave robot stores information indicating midst of execution of the slave program in the register P (Step S43), and executes the same processing as that of Steps S22 through S26. Specifically, the next line of the slave program is read, and if the line is present, the distance of motion, the motion time and the number of interpolation points by this line are determined, the index i is set to “0”, and it is determined whether or not the index i is smaller than the number of interpolation points (Steps S44 through S48). If the index i is smaller than the number of interpolation points, the same processing as the above-described processing of Steps S9 and S10 is performed. Specifically, the stop confirmation and procedure is executed (Step SB49) and if a stop procedure command is not issued, the distance of motion obtained in Step S46 is divided by the number of interpolation points and the quotient is multiplied by a value obtained by adding 1 to the index i, and then the obtained sum is added to the motion start position on that line, to determine the interpolation position data (Step S50).
  • Then, the controller of the slave robot waits until the interpolation position data and the synchronously cooperative operation start position data from the master robot are received (Step S[0066] 51). If the received interpolation position data is not the data from the master robot identified by the robot number stored in Step S40 (Step S48), the slave robot issues an alarm and stops (Step S53). On the other hand, if the interpolation position data and the synchronously cooperative operation start position data send in Step S26 from the master robot identified by the robot number are received, the processor of the slave robot determines a transformation matrix to the motion amount of slave robot for the motion amount of the master robot based on the received synchronously cooperative operation start position data and interpolation position data (Step S54), and determines corrected interpolation position data of the slave robot taking the motion amount of the master robot into consideration based on the determined transformation matrix and the interpolation position data of the slave robot obtained in Step S50 (Step S55).
  • A method of determining the corrected interpolation position data of the slave robot taking the motion amount of master robot into consideration will be described with reference to FIG. 17. [0067]
  • P0: an arbitrary position in the space [0068]
  • P1: an arbitrary position in the space, which is different from P0 [0069]
  • P0s: a position at which P0 is viewed from the world coordinate system of slave robot [0070]
  • P1s: a position at which P1 is viewed from the world coordinate system of slave robot [0071]
  • P0m: a position at which P0 is viewed from the world coordinate system of master robot [0072]
  • P1m: a position at which P1 is viewed from the world coordinate system of master robot [0073]
  • Ts−m: a transformation matrix in the case where the world coordinate system of master robot is viewed from the world coordinate system of slave robot [0074]
  • T0s−1s: a transformation matrix from P0s to P1s in the world coordinate system of slave robot in the case of being viewed from a slave robot [0075]
  • P1s=T0s−1s|P0s   . . . (1)
  • P1s=Ts−m|P1m   . . . (2)
  • P0s=Ts−m|P0m   . . . (3)
  • From Equations (1), (2) and (3), [0076]
  • Ts−m|P1m=T0s−1s|Ts−m|P0m   . . . (4)
  • Therefore, [0077]
  • T0s−1s=Ts−m|P1m|INV(Ts−m|P0m)   . . . (5)
  • where, INV means an inverse matrix. [0078]
  • In Equation (5), Ts−m is a transformation matrix in the case where the world coordinate system of master robot is viewed from the world coordinate system of slave robot (in the case where the master robot is the robot No. [0079] 1 and the slave robot is the robot No. 2, this transformation matrix Ts−m is T1-2), and it is set and stored in the nonvolatile memory of the slave robot by the calibration made first. Also, by making the calculation in Equation (5) taking P0m as the synchronously cooperative operation start position sent from the master robot and P1m as the master robot interpolation position sent from the master robot, the transformation matrix T0s−1s for determining the motion amount in the world coordinate system of slave robot corresponding to the motion amount of master robot can be determined.
  • As shown in the following equation, by multiplying the determined transformation matrix T0s−1s by the interpolation position data of slave robot determined in Step S[0080] 49, the interpolation position data of slave robot which the motion amount of master robot is reflected on (added to) can be obtained.
  • Interpolation position data of slave robot on which motion amount of master robot is reflected=T0s−1s|interpolation position data of the slave robot. [0081]
  • Based on the interpolation position data thus corrected, the motion amount on each axis is determined (Step S[0082] 56), acceleration/deceleration processing is performed (Step S57), and a command is issued to the motor (Step S58). Then, a notice of interpolation position data receipt is sent to the master robot (Step S59), the index i is increased by “1” (Step S60), and the processing returns to Step S48.
  • The processing of Steps S[0083] 48 through S60 is executed repeatedly until the index i reaches the number of interpolation points.
  • On the other hand, when it is determined in Step S[0084] 33 that the master robot controller has received the notices of interpolation position data receipt, which are sent by the processors of respective slave robots in the processing of Step S58, from all the slave robot controllers, the index i is increased by
    Figure US20020029095A1-20020307-P00900
    1″ (Step S34), and the processing returns to Step S26 to repeatedly execute the processing of Steps S26 through S34 until the index i reaches the number of interpolation points.
  • If the index i reaches the number of interpolation points, the procedure proceeds from Step S[0085] 26 to Step S22, to execute the processing of Step S22 and the subsequent steps.
  • On the other hand, the controller of the slave robot also executes the processing in Steps S[0086] 48 through S60 repeatedly, and when the index i reaches the number of interpolation points, the procedure proceeds from Step S48 to Step S44, to execute the processing of Step S44 and the subsequent steps.
  • Thus, the controllers of the master robot and slave robot execute the above-described processing repeatedly as long as a new line is read from the master program and slave program. When a new line to be read becomes absent, the procedure for the master robot proceeds from Steps S[0087] 23 to Step S35. Also, the procedure for the slave robot proceeds from Steps S45 to Step S61.
  • It is assumed that a new line to be read in the master program becomes absent for the master robot earlier than for the slave robot and the procedure of the processor of the master robot proceeds to Step S[0088] 35 earlier than that of the slave robot. In this case, the processor of the master robot sends the latest position interpolation data determined in Step S28 and the synchronously cooperative operation start position data stored in the registers to the slave robot via the communication line L (Step S35), and determines whether or not the notices of completion have been sent from all the slave robots (Step S36). The processor of the master robot executes the processing of Steps S35 and S36 repeatedly until the notices of completion have been sent from all the slave robots, and continues to send the finally sent interpolation position data and synchronously cooperative operation start position data. Specifically, although the operation of the master robot is stopped, the finally sent interpolation position data and synchronously cooperative operation start position data are sent continuously to the slave robots.
  • On the other hand, the slave robot executes the processing of Steps S[0089] 44 through S60 as long as a command line is read from the slave program. In this case, since the data received in Step S51 are the interpolation position data and synchronously cooperative operation start position data that were finally sent from the master robot, the transformation matrix determined by the processing in Step S54 is the same.
  • After the operation of the master robot is finished, the same correction (amount) is made for the slave robots (Step S[0090] 55) to be controlled and driven based on the slave program. When a command line becomes absent in the slave program, the procedure for the slave robot proceeds to Step S61, where the notice of completion is issued to the master robot via the communication line, and then determines whether or not a completion command has been sent from the master robot (Step S62). If the completion command has not been sent, the stop confirmation and procedure is executed (Step S63). If a stop procedure command is not issued, the distance of motion of the latest line, determined in Step S46, is divided by the number of interpolation points, the quotient is multiplied by the number of interpolation points indicated by the index i, and the obtained value is added to the motion start position of the latest line to determine the interpolation position data (Step S63). Specifically, this interpolation position data is the final position, and is determined finally by the processing of Step S50 of the latest line. This data is the same as the interpolation position data stored in the register, so that it need not be determined by performing calculations again and can be obtained merely by reading the value stored in the register.
  • Then, the processing of Steps S[0091] 65 through S72, which is the same as the processing in Steps S51 through S58, is executed. The interpolation position data determined in Step S64 is the same as the interpolation position data determined in Step S50 in the latest line, and for the transformation matrix determined in Step S68, the synchronously cooperative operation start position data and interpolation position data sent from the master robot are not changed. Therefore, this correction (amount) is the same as the correction (amount) determined finally in the latest line. As a result, the corrected interpolation position data determined in Step S69 is the same as the latest interpolation position data determined in Step S55 in the latest line. As a result, the motion amount (incremental amount) on each axis becomes “0”, and no command is issued to the motor, so that the robot becomes stopped. The processing of Steps S61 through S72 is executed repeatedly until the completion command is sent from the master robot. When the completion command is sent from the master robot (Step S62), information indicating completion of the program is stored in the register P (Step S73) and the processing of the slave program terminates.
  • On the other hand, when the notices of completion are received from all the slave robots (Step S[0092] 36), the processor of the master robot issues the completion command to all the slave robots (Step S37) and stores information indicating completion of the program in the register P (Step S38). Upon receipt of this completion command, the slave robot stops its operation, as described above and this processing for synchronously cooperative operation terminates.
  • In contrast with the above, when the slave robot finishes the processing of the slave program earlier than the master robot, the processor of the master robot executes the processing of Steps S[0093] 22 through S34 repeatedly, and continues to send the synchronously cooperative operation start position and the interpolation position data to the slave robot at Step S29. The procedure for the slave robot proceeds from Step S45 to Step S61, and the processing in Steps S61 through S72 is executed repeatedly. In this case, the interpolation position data determined in Step S64 is, as described above, the latest interpolation position data in the latest line of the slave program and the final command position. For this interpolation position data, by the synchronously cooperative operation start position data and interpolation position data sent from the master robot, the interpolation position data corrected by using the transformation matrix determined in Step S68 is determined, and further the motion amount on each axis is determined, the acceleration/deceleration processing is performed, and the motor for each axis is driven (Steps S69 through S72).
  • Then, the execution of the master program is also completed and the procedure proceeds from Step S[0094] 23 to Step S35. When the controller of the master robot receives the notice of completion from all the slave robot controllers (Step S36), it issues the notice of completion to all the slave robot controllers (Step S37), stores information indicating the termination of the program in the register P (Step S38), and stops the operation of the master robot. Upon receipt of the notice of completion (Step S62), the controller of the slave robot also stores information indicating the termination of the program in the register P (Step S72) and stops the operation of the slave robot.
  • Next, in the case where the normal programs are stored in respective robots, as shown in FIG. 6, the processing of Steps S[0095] 1-S15 is executed.
  • FIG. 15 shows the “stop procedure command confirmation and procedure” to be executed in Steps S[0096] 9, S27, S49 and S63 as mentioned.
  • FIG. 16 shows a “stop procedure management task” for monitoring whether or not a stop command is issued and determining a stop procedure command. Each robot controller executes the monitor processing management task processing at every predetermined period. The [0097] processor 10 of the robot controller 1 initializes a register SELF LVL for storing the stop procedure type number for the robot connected with the robot controller and registers OTHER LVL for storing the stop procedure type numbers for the other robots connected through the communication line L, to “0” (Step SB21). The registers OTHER LVL are provided respectively for the robot controllers for the other robots.
  • Then, it is determined whether or not a stop procedure request (cause for stopping) is issued for the robot connected to the robot controller (Step SB[0098] 22). If a stop procedure request (cause for stopping) is issued, the stop procedure type number for the cause for stopping (stop procedure request) is determined with reference to the setting of the designation of the stop procedure type number for each of the cause for stopping stored in the nonvolatile memory as shown in FIG. 8, and the determined stop procedure type number is stored in the register SELF LVL (Step SB32).
  • The stop procedure type numbers sent from the other robot controllers through the communication line L and the robot numbers associated with the other robot controllers are received and stored, and the stop procedure type number stored in the SELF LVL is sent to the other robot controllers (Step SB[0099] 23). It is determined whether or not the operation program in execution is the master program or the slave program (Step SB 24). In the case where a normal program is presently in execution in the example as shown in FIG. 6, the determination result in Step SB24 is NO and the procedure proceeds to Step SB 26. In Step SB26, it is determined whether or not any one of the register SELF LVL and the registers OTHERS LVL stores a value other than “0”. The register SELF LVL stores a value other than “0” when the stop procedure number is set in Step SB32 and stores “0” set in Step SB21 when a stop procedure request (a kind of cause for stopping) is not issued. In this case where the robot controller is in execution of a normal program, all of the registers OTHERS LVL store “0” since the processing of Steps SB 25 and SB33 is not executed.
  • If all of the register SELF LVL and the registers OTHER LVL store “0”, the procedure proceeds from Step SB[0100] 26 to Step SB31 to set the stop procedure type command data STOP to “0”. The setting of “0” in the stop procedure type command data STOP means not to execute any stop procedure, as describe later. If it is determined that any one of the register SELF LVL and the registers OTHER LVL store a number other than “0” in Step SB 26, the larger one of the numbers stored in the register SELF LVL and the registers OTHER LVL is adopted as the stop procedure type number (Step SB 27). In this case, since all of the registers OTHER LVL store “0”, the stop procedure type for the robot is determined solely by the number stored in the register SELF LVL. It is determined whether the type of the stop procedure is the decelerating stop (the stop procedure type No. 1), the controlling stop (the stop procedure type No. 2) or the immediate stop (the stop procedure type No. 3) in Steps SB 28-30. The stop procedure command data STOP is set to “1” when the stop procedure type is determined as the decelerating stop, set to “2” when the stop procedure type is determined as the controlling stop and set to “3” when the stop procedure type is determined as the immediate stop (Steps SB 34, SB35 and SB36).
  • Thus, the stop procedure type number determined according to the cause for stopping occurred in the robot connected to the robot controller is set as the stop procedure command data STOP in the case where the robot controller is in execution of the normal program. Then the stop procedure of the determined type is executed in the “stop confirmation and processing” as shown in FIG. 15. [0101]
  • On the other hand, if it is determined that the robot controller is in execution of a master program or a slave program based on the information set in the resister P in Step SB [0102] 24, the procedure proceeds to Step SB25. In Step SB25, it is determined whether or not a stop procedure request (including the stop procedure type number) has been issued from any one of the robots performing the synchronously cooperative operation according to the master/slave robot definition as shown in FIG. 4. If it is determined that a stop procedure request has been issued from any one of the robots performing the synchronously cooperative operation, the stop procedure type number is set to the associated resister OTHER LVL (Step SB33) and the procedure proceeds to Step SB26. If a plurality of stop procedure requests are issued from the robots performing the synchronously cooperative operation, the stop procedure type numbers are set to the associated registers OTHER LVL, respectively. If a stop procedure type request has been issued from the robot not performing the synchronously cooperative operation, the procedure proceeds to Step SB26 omitting the processing of Step SB33.
  • Then, in Step SB[0103] 26, it is determined whether any one of the register SELF LVL and the registers OTHER LVL store a number other than “0”. If all of the registers store “0” the procedure proceeds to Step SB31, and any one of the registers stores a number other than “0”, the largest one of the stored numbers is selected as the stop procedure type number (Step SB 27). Then, it is determined whether the stop procedure type number is “1”, “2” or “3” and the determined number is set in the stop procedure command data STOP (Steps SB34, SB35 and SB36).
  • As described above, when the robot controller is in execution of a master program or a slave program, when a cause for stopping the robot occurs in any of the master robot and the slave robots performing the synchronously cooperative operation, the master robot and the slave robots are stopped in the same type of the stop procedure in synchronism. If different causes for stopping the robots occurs in the master and slave robots so that different stop procedure type numbers are set for the respective robots in the synchronously cooperative operation, the largest one of the stop procedure type numbers is adopted as the stop procedure type for respective robots in Step SB[0104] 27. As described, since a larger number is assigned to a stop procedure type having higher degree of emergency, when the different stop procedure type numbers are set, the stop procedure type having the highest degree of emergency is adopted.
  • The “stop procedure command confirmation & processing” as shown in FIG. 15 is executed in Steps S[0105] 9, S27, S49 and S63 in execution of a normal program, a master program and a slave program, as mentioned, to confirm an issuance of a stop procedure command and perform the stop procedure to stop the robot operation if a stop procedure command has been issued.
  • First, the stop procedure command data STOP is discriminated (Steps SB[0106] 1-SB3). If the data STOP is discriminated to be “0” (Step SB2), it means that a stop procedure command has not been issued and therefore the procedure returns to the main program. If the stop procedure command data STOP is discriminated to be “1” which represents the decelerating stop (Step SB2), motion amounts (incremental amounts) for respective axes of the robot are set to “0” and the acceleration/deceleration processing is performed to output the results of the processing to the motors until the processing is terminated, to decelerate the motors to be stopped (Steps SB6-SB9).
  • If the stop procedure command data STOP is discriminated to be “2” which represents the controlled stop (Step SB[0107] 3), the motion amounts (incremental amounts) for the respective axes are set to “0” and the acceleration/deceleration processing is performed to output the results of the processing to the motors until the processing is terminated, to decelerate the motor to be stopped (Steps SB10-SB13), and further the power supply to the motor is shut down to turn off the servo excitation (Steps SB14) to terminate the processing.
  • If the stop procedure command data STOP is discriminated to be none of “0”, “1” and “2”, namely it is discriminated to be “3” which represents the immediate stop, the command amounts to the motors are set to “0” to immediately stop the motors (Steps SB[0108] 4, SB5).
  • As described, when a stop procedure command is issued in the master robot or the slave robots in the synchronously cooperative operation, the stop procedure of the type in accordance with the cause for stopping is selected and executed in the respective robot controllers. In the master robot controller, the processing of FIG. 15 is performed at Step S[0109] 27 in execution of the master program to stop the motion of the master robot, and in the slave robot controller the processing of FIG. 15 is performed at Steps S49 and S63 in execution of the slave program to stop the operation of the slave robot.
  • When the robot controller executes a normal program, the processing of FIG. 15 is performed at Step S[0110] 9 in execution of the normal program to stop the motion of the robot.
  • In the foregoing embodiment, in the case where the stop procedure request is issued in any of the master and slave robots, the master and slave robots in synchronously cooperative operation are stopped, as described referring to Steps SB[0111] 24, SB25 and SB33 in FIG. 16, and in the case where the stop procedure request is issued in the robot in performing the normal program, only the robot in performing the normal program is stopped.
  • However, in the robot control system having robot controllers connected with one another through the communication line, there is a case where it is preferable to stop some or all of the robots in the system in the same type of stop procedure when a cause for stopping occurs in one of the robots in the system, irrespective of the master and slave robots in synchronously cooperative operation. [0112]
  • In this case, the processing is modified by omitting the processing of Steps SB[0113] 24, SB 25 and SB33, and the processing of Step SB23 is replaced by processing of storing the stop procedure type numbers into the registers OTHER LVL for the respective robots, and the procedure proceeds from Step SB23 to Step SB26 to execute the processing of Step SB26 and the subsequent Steps. If all of the registers SELF LVL and OTHER LVL store “0”, the procedure proceeds to Step SB 31, and any of the registers SELF LVL and OTHER LVL store a number other than “0”, the largest one of the stored numbers is selected and set as the stop procedure command data STOP. With this processing, when a cause for stop occurs in any of the robots connected to one another through the communication line, the stop procedures of the same type are performed in all of the robot controllers connected through the communication line to stop the operation of the robots.
  • Further, when a cause for stop occurs in one of the robots connected to one another through the communication line, any of the other robots to be stopped in the same type of stop procedure may be designated in advance. Particularly, a group of robots are designated and when a cause for stop occurs in any of the robots in the group, all of the robots in the group is stopped in the same type of stop procedure. In this case, in addition to the definition of the master and slave robots as shown in FIG. 4, a group of robots to be stopped in the same type of stop procedure are defined and stored using the robot numbers. [0114]
  • Then, in the stop processing managing task as shown in FIG. 16, the procedure of Step SB[0115] 24 is deleted and the procedure proceeds from Step SB23 to Step SB25 where it is determined whether or not a stop procedure request is issued from a robot in the group to which the robot controller belongs. Only when the stop procedure command is issued from a robot in the group to which the robot controller belongs, the procedure proceeds to Step SB33 to store the stop procedure type number into the register OTHER LVL and the processing of Step SB26 and the subsequent processing are performed. With the above modification, when a stop procedure command is issued from a robot in the group to which the robot controller belongs, all of the robot in the group are stopped in the same stop procedure type. In the case of adopting this processing, when the robots to be operated in synchronous cooperation are set and inputted as the master and slave defining information, as shown in FIG. 4, the defined master and slave robots may be automatically set to be in the same group. In order to stop only the robots in synchronously cooperative operation in the same stop procedure type in synchronism, the processing of Step SB24 in the stop procedure managing task shown in FIG. 16 is necessary, but in order to stop the robot in the group when a stop causing matter occurs in any of the robots, irrespective of the synchronously cooperative operation, the processing of Step SB24 is omitted.
  • Further, in the foregoing embodiment, in Step SB[0116] 23 in the stop procedure managing task shown in FIG. 16, the stop procedure type number is sent and received between the robot controllers connected through the communication lines. Alternatively, the cause of stop may be sent and received between the robot controllers in place of the stop procedure type number. In this case, the stop procedure type number is determined based on the received cause of stop using the set correspondence table of the cause of stop and the stop procedure type number as shown in FIG. 8.
  • Furthermore, the PLC may be provided on the robot control system in which the robot controllers are connected through the communication lines such as Ethernet, and the respective robot controllers and the PLC are connected by means of parallel I/O and the data relating to the position information for the synchronously cooperative operation are transmitted through the communication lines such as Ethernet and the data relating to the stop procedure may be transmitted through the parallel I/O. [0117]
  • A case of independent input/output and a case of binary data input/output may be adopted as the method of transmitting the stop procedure information, as shown in FIGS. 20[0118] a and 20 b.
  • In the case of the independent input/output, an input/output signal is assigned for each of the stop procedure type. For example, DO[0119] 3 is outputted for stopping the robot in the immediate stop type, and DI3 is inputted when the robot is to be stopped in the immediate stop type.
  • In the case of binary data input/output, each stop procedure type is expressed by binary data. For example, in the case of three stop procedure types, all the stop procedure types can be represented by two binary signals. In this case, two DO signals are outputted for stopping the robot in the immediate stop type and, two DI signals are inputted when the robot is to be stopped in the immediate stop type. [0120]
  • In the robot control system shown in FIGS. 18 and 19, it is necessary for the PLC to input the stop procedure type signal from the robot controller to the other robot controllers as the stop command. [0121]
  • According to the present invention, when it is required to stop at least one of robots connected with one another through a communication path for a cause for stopping, the robot and the other robots are stopped in the same type of stopping procedure, to prevent relative displacement of relative positions between the robots in performing a synchronously cooperative operation. Since a deceleration stop and a controlled stop can be adopted as the stopping procedure types, frequency of an immediate stop conventionally adopted as the stopping procedure is lowered to reduce a load on a robot mechanism. [0122]

Claims (16)

What is claimed is:
1. A robot controller for use in a robot control system in which a plurality of robot controllers each for controlling an associated robot are connected with one another through a communication path, said robot controller comprising:
storing means for storing assignment information on types of stopping procedure assigned for each of a plurality of causes for stopping the robot;
detecting means for detecting a first cause for stopping occurred in the robot associated with the robot controller;
designating means for designating a first type of stopping procedure based on the detected first cause for stopping and the assignment information stored in said storing means;
sending means for sending identification information on the designated first type of stop procedure to another robot controller through the communication path;
receiving means for receiving identification information on a second type of stop procedure sent from another robot controller through the communication path; and
determining means for determining a type of the procedure of stopping the associated robot based on the identification information on the first type of stopping procedure or the identification information on the second type of stopping procedure.
2. A robot controller according to claim 1, further comprising means for sending and receiving information for performing a synchronized or cooperative operation through the communication path.
3. A robot controller according to claim 2, further comprising means for enabling said determining means only when the associated robot is in performing a synchronized or cooperative operation with another robot.
4. A robot controller according to claim 1, wherein said causes for stopping the robot include an emergency stop command inputted in the robot and an alarm occurred in the robot.
5. A robot controller according to claim 1, wherein said types of stopping procedure are classified by whether or not a power supply is shut off and/or whether or not motors for driving the robot are subjected to acceleration/deceleration processing.
6. A robot controller for use in a robot control system in which a plurality of robot controllers each for controlling an associated robot are connected with one another through a communication path, said robot controller comprising:
storing means for storing assignment information on types of stopping procedure assigned for each of a plurality of causes for stopping the robot;
detecting means for detecting a first cause for stopping occurred in the robot associated with the robot controller;
designating means for designating a first type of stopping procedure based on the detected first cause for stopping and the assignment information stored in said storing means;
sending means for sending identification information on the detected first cause for stopping to another robot controller through the communication path;
receiving means for receiving identification information on a second cause for stopping occurred in a robot associated with another robot controller sent from another robot controller through the communication path and designating a second type of stop procedure based on the assignment information stored in said storing means; and
determining means for determining a type of the procedure of stopping the associated robot based on the identification information on the first type of stopping procedure or the identification information on the second type of stopping procedure.
7. A robot controller according to claim 6, further comprising means for sending and receiving information for performing a synchronized or cooperative operation through the communication path.
8. A robot controller according to claim 7, further comprising means for enabling said determining means only when the associated robot is in performing a synchronized or cooperative operation with another robot.
9. A robot controller according to claim 6, wherein said causes for stopping the robot include an emergency stop command inputted in the robot and an alarm occurred in the robot.
10. A robot controller according to claim 6, wherein said types of stopping procedure are classified by whether or not a power supply is shut off and/or whether or not motors for driving the robot are subjected to acceleration/deceleration processing.
11. A robot controller for use in a robot control system in which a plurality of robot controllers each for controlling an associated robot are connected with one another through a communication path, said robot controller comprising:
storing means for storing assignment information on types of stopping procedure assigned for each of a plurality of causes for stopping the robot;
detecting means for detecting a first cause for stopping occurred in the robot associated with the robot controller;
specifying means for specifying one or more other robots to be stopped simultaneously with the associated robot when the first cause occurs;
designating means for designating a first type of stopping procedure based on the detected first cause for stopping and the assignment information stored in said storing means;
sending means for sending identification information on the designated first type of stop procedure to the one or more other robot controllers of the specified one or more other robots through the communication path;
receiving means for receiving identification information on a second type of stop procedure sent from the one or more other robot controllers through the communication path; and
determining means for determining a type of the procedure of stopping the associated robot based on the identification information on the first type of stopping procedure or the identification information on the second type of stopping procedure.
12. A robot controller according to claim 11, wherein said causes for stopping the robot include an emergency stop command inputted in the robot and an alarm occurred in the robot.
13. A robot controller according to claim 11, wherein said types of stopping procedure are classified by whether or not a power supply is shut off and/or whether or not motors for driving the robot are subjected to acceleration/deceleration processing.
14. A robot controller for use in a robot control system in which a plurality of robot controllers each for controlling an associated robot are connected with one another through a communication path, said robot controller comprising:
storing means for storing assignment information on types of stopping procedure assigned for each of a plurality of causes for stopping the robot;
detecting means for detecting a first cause for stopping occurred in the robot associated with the robot controller;
specifying means for specifying one or more other robots to be stopped simultaneously with the associated robot when the first cause occurs;
designating means for designating a first type of stopping procedure based on the detected first cause for stopping and the assignment information stored in said storing means;
sending means for sending identification information on the detected first cause for stopping to the one or more other robot controllers of the specified one or more other robots through the communication path;
receiving means for receiving identification information on a second cause for stopping occurred in the specified one or more robots sent from the one or more other robot controllers through the communication path and designating a second type of stop procedure based on the assignment information stored in said storing means; and
determining means for determining a type of the procedure of stopping the associated robot based on the identification information on the first type of stopping procedure or the identification information on the second type of stopping procedure.
15. A robot controller according to claim 14, wherein said causes for stopping the robot include an emergency stop command inputted in the robot and an alarm occurred in the robot.
16. A robot controller according to claim 14, wherein said types of stopping procedure are classified by whether or not a power supply is shut off and/or whether or not motors for driving the robot are subjected to acceleration/deceleration processing.
US09/944,090 2000-09-04 2001-09-04 Robot controller Expired - Fee Related US6434448B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000-266859 2000-09-04
JP2000266859A JP3504222B2 (en) 2000-09-04 2000-09-04 Robot controller
JP266859/2000 2000-09-04

Publications (2)

Publication Number Publication Date
US20020029095A1 true US20020029095A1 (en) 2002-03-07
US6434448B1 US6434448B1 (en) 2002-08-13

Family

ID=18753878

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/944,090 Expired - Fee Related US6434448B1 (en) 2000-09-04 2001-09-04 Robot controller

Country Status (4)

Country Link
US (1) US6434448B1 (en)
EP (1) EP1186386B1 (en)
JP (1) JP3504222B2 (en)
DE (1) DE60127908T2 (en)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030453A1 (en) * 2002-08-08 2004-02-12 Stefan Graf Method and apparatus for controlling handling devices
US20080147206A1 (en) * 2004-08-30 2008-06-19 Abb Ab Control system for Real Time Applications for Cooperative Industrial Robots
US8000837B2 (en) 2004-10-05 2011-08-16 J&L Group International, Llc Programmable load forming system, components thereof, and methods of use
US20110295422A1 (en) * 2008-12-09 2011-12-01 Torsten Hasenzahl Method and device for controlling a manipulator system
CN102481691A (en) * 2010-02-03 2012-05-30 松下电器产业株式会社 Robot system control method
US20130331859A1 (en) * 1998-11-20 2013-12-12 Intuitive Surgical Operations, Inc. Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures
US20150148952A1 (en) * 2012-06-29 2015-05-28 Mitsubishi Electric Corporation Robot control apparatus and robot control method
US20160023355A1 (en) * 2013-03-19 2016-01-28 Panasonic Intellectual Property Management Co., Ltd. Robot system control method and robot system
US9786203B2 (en) 2002-01-16 2017-10-10 Intuitive Surgical Operations, Inc. Minimally invasive surgical training using robotics and telecollaboration
US9802313B2 (en) 2013-05-16 2017-10-31 Kobe Steel, Ltd. Industrial-use robot and control system and control method for controlling operation of peripheral device
US20180009109A1 (en) * 2016-07-08 2018-01-11 Rolls-Royce Plc Methods, apparatus, computer programs, and non-transitory computer readable storage mediums for controlling at least one of a first robot and a second robot to collaborate within a system
US20180243901A1 (en) * 2015-08-25 2018-08-30 Kawasaki Jukogyo Kabushiki Kaisha Robot system
US20190072938A1 (en) * 2012-03-27 2019-03-07 Sirqul, Inc. Controlling distributed device operations
US10278782B2 (en) * 2014-03-19 2019-05-07 Intuitive Surgical Operations, Inc. Medical devices, systems, and methods using eye gaze tracking
US10368955B2 (en) * 2017-03-31 2019-08-06 Johnson & Johnson Innovation-Jjdc, Inc. Multi-functional foot pedal assembly for controlling a robotic surgical system
US10432922B2 (en) 2014-03-19 2019-10-01 Intuitive Surgical Operations, Inc. Medical devices, systems, and methods using eye gaze tracking for stereo viewer
US10503199B1 (en) 2018-07-17 2019-12-10 Verb Surgical Inc. Pedal with sliding and locking mechanisms for surgical robots
US10888383B2 (en) 2018-07-17 2021-01-12 Verb Surgical Inc. Robotic surgical pedal with integrated foot sensor
CN114683273A (en) * 2020-12-31 2022-07-01 美的集团(上海)有限公司 Robot halt control method and device, robot and storage medium
US20230134924A1 (en) * 2021-11-01 2023-05-04 Dexterity, Inc. Robotic system to control multiple robots to perform a task cooperatively

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3577028B2 (en) * 2001-11-07 2004-10-13 川崎重工業株式会社 Robot cooperative control system
DE10234233A1 (en) * 2002-07-27 2004-02-05 Kuka Roboter Gmbh Process for the exchange of data between controls of machines, in particular robots
DE10235943A1 (en) * 2002-08-06 2004-02-19 Kuka Roboter Gmbh Method and device for the synchronous control of handling devices
JP2004199433A (en) * 2002-12-19 2004-07-15 Fanuc Ltd Synchronous control device
US7295893B2 (en) * 2003-03-31 2007-11-13 Kabushiki Kaisha Toshiba Manipulator and its control apparatus and method
DE602004019781D1 (en) * 2003-06-20 2009-04-16 Fanuc Robotics America Inc MULTIPLE ROBOT ARM TRACKING AND MIRROR JOG
SE0303384D0 (en) * 2003-12-15 2003-12-15 Abb Ab Control system, method and computer program
ATE500542T1 (en) * 2004-06-17 2011-03-15 Abb Ab CONTROL SYSTEM FOR AN INDUSTRIAL ROBOT
JP2006209646A (en) * 2005-01-31 2006-08-10 Toyota Motor Corp Distributed control system
JP4382003B2 (en) 2005-03-23 2009-12-09 川崎重工業株式会社 Robot control apparatus and robot control method
US7860609B2 (en) 2005-05-06 2010-12-28 Fanuc Robotics America, Inc. Robot multi-arm control system
US7904182B2 (en) 2005-06-08 2011-03-08 Brooks Automation, Inc. Scalable motion control system
JP2006346756A (en) * 2005-06-13 2006-12-28 Kuka Roboter Gmbh Method for controlling robot and its system
EP1951482A2 (en) * 2005-11-16 2008-08-06 Abb Ab Method and device for controlling motion of an industrial robot
JP4930824B2 (en) * 2005-11-16 2012-05-16 株式会社安川電機 Robot control device and robot system
JP4950522B2 (en) * 2006-03-08 2012-06-13 花王株式会社 Work following device
DE102006022483A1 (en) * 2006-05-13 2007-11-29 Kuka Roboter Gmbh Method and device for displaying a robot path for supporting a change of location of a support point
JP2008023628A (en) * 2006-07-19 2008-02-07 Denso Corp Assembling apparatus
KR100945884B1 (en) * 2007-11-14 2010-03-05 삼성중공업 주식회사 Embedded robot control system
DE102008021671B4 (en) 2008-04-30 2013-04-11 Kuka Laboratories Gmbh Method and device for monitoring a manipulator
JP5375297B2 (en) * 2009-04-16 2013-12-25 株式会社安川電機 Robot system
US8731714B2 (en) * 2010-09-22 2014-05-20 GM Global Technology Operations LLC Concurrent path planning with one or more humanoid robots
JP5618770B2 (en) * 2010-11-09 2014-11-05 三菱電機株式会社 Robot calibration apparatus and calibration method
US10052759B2 (en) * 2013-03-29 2018-08-21 Fanuc America Corporation Adaptive control of robotic laser braze/weld operation
EP2996973B1 (en) 2013-05-17 2019-01-30 Intelligrated Headquarters LLC Robotic carton unloader
US9650215B2 (en) * 2013-05-17 2017-05-16 Intelligrated Headquarters Llc Robotic carton unloader
US10807805B2 (en) 2013-05-17 2020-10-20 Intelligrated Headquarters, Llc Robotic carton unloader
JP5892132B2 (en) * 2013-09-13 2016-03-23 株式会社安川電機 Control device and robot system
JP6258043B2 (en) * 2014-01-17 2018-01-10 株式会社神戸製鋼所 CONTROL SYSTEM, CONTROL DEVICE, WELD MANUFACTURING METHOD, AND PROGRAM FOR CONTROLLING INDUSTRIAL ROBOT
JP5952330B2 (en) * 2014-03-27 2016-07-13 ファナック株式会社 Machining application robot system with machining condition management function
JP6539989B2 (en) * 2014-11-14 2019-07-10 株式会社デンソーウェーブ Robot controller
DE102015202017A1 (en) * 2015-02-05 2016-08-11 Kuka Roboter Gmbh Manipulator system for the coordinated control of at least two manipulators
JP2016162205A (en) * 2015-03-02 2016-09-05 ファナック株式会社 Control device capable of centralized management of control by grouping multiple systems
WO2017202439A1 (en) * 2016-05-23 2017-11-30 Abb Schweiz Ag Dynamic allocation of processing tasks for a robot cell
US10597235B2 (en) 2016-10-20 2020-03-24 Intelligrated Headquarters, Llc Carton unloader tool for jam recovery
DE102016221213B4 (en) * 2016-10-27 2019-07-04 Audi Ag Automated maintenance system
JP6496340B2 (en) * 2017-03-17 2019-04-03 ファナック株式会社 Scanner control device, robot control device, and remote laser welding robot system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4831582A (en) * 1986-11-07 1989-05-16 Allen-Bradley Company, Inc. Database access machine for factory automation network
US5038089A (en) * 1988-03-23 1991-08-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronized computational architecture for generalized bilateral control of robot arms
US5117544A (en) * 1988-04-19 1992-06-02 Nakamura-Tome Precision Ind. Co., Ltd. Two-spindle opposed type cnc lathe
US5204942A (en) * 1989-01-10 1993-04-20 Kabushiki Kaisha Kobe Seiko Sho Robot control system for controlling a set of industrial robots for cooperative operation
JP2880590B2 (en) * 1991-07-24 1999-04-12 株式会社不二越 Synchronous control method for industrial robot
US6131097A (en) * 1992-12-02 2000-10-10 Immersion Corporation Haptic authoring
US5629594A (en) * 1992-12-02 1997-05-13 Cybernet Systems Corporation Force feedback system
US5485644A (en) * 1993-03-18 1996-01-23 Dainippon Screen Mfg. Co., Ltd. Substrate treating apparatus
JPH07303966A (en) * 1994-05-11 1995-11-21 Fanuc Ltd Robot control device
JP3406080B2 (en) * 1994-08-24 2003-05-12 ファナック株式会社 Method of allocating and using welding equipment in welding robot system
JPH08300280A (en) * 1995-05-09 1996-11-19 Fanuc Ltd Motion control system of robot
US5980082A (en) * 1995-07-05 1999-11-09 Fanuc Limited Robot movement control device and movement control method
US5784542A (en) * 1995-09-07 1998-07-21 California Institute Of Technology Decoupled six degree-of-freedom teleoperated robot system
JPH09244730A (en) * 1996-03-11 1997-09-19 Komatsu Ltd Robot system and controller for robot
EP1090722B1 (en) * 1999-09-16 2007-07-25 Fanuc Ltd Control system for synchronously cooperative operation of a plurality of robots

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9636186B2 (en) * 1998-11-20 2017-05-02 Intuitive Surgical Operations, Inc. Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures
US20160166345A1 (en) * 1998-11-20 2016-06-16 Intuitive Surgical Operations, Inc. Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures
US20160140875A1 (en) * 1998-11-20 2016-05-19 Intuitive Surgical Operations, Inc. Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures
US9271798B2 (en) * 1998-11-20 2016-03-01 Intuitive Surgical Operations, Inc. Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures
US9666101B2 (en) * 1998-11-20 2017-05-30 Intuitive Surgical Operations, Inc. Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures
US20180185110A1 (en) * 1998-11-20 2018-07-05 Intuitive Surgical Operations, Inc. Multi-User Medical Robotic System for Collaboration or Training in Minimally Invasive Surgical Procedures
US20130331859A1 (en) * 1998-11-20 2013-12-12 Intuitive Surgical Operations, Inc. Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures
US9867671B2 (en) * 1998-11-20 2018-01-16 Intuitive Surgical Operations, Inc. Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures
US9786203B2 (en) 2002-01-16 2017-10-10 Intuitive Surgical Operations, Inc. Minimally invasive surgical training using robotics and telecollaboration
US20040030453A1 (en) * 2002-08-08 2004-02-12 Stefan Graf Method and apparatus for controlling handling devices
US7069112B2 (en) 2002-08-08 2006-06-27 Kuka Roboter Gmbh Method and apparatus for controlling handling devices
US20080147206A1 (en) * 2004-08-30 2008-06-19 Abb Ab Control system for Real Time Applications for Cooperative Industrial Robots
US8000837B2 (en) 2004-10-05 2011-08-16 J&L Group International, Llc Programmable load forming system, components thereof, and methods of use
US20110295422A1 (en) * 2008-12-09 2011-12-01 Torsten Hasenzahl Method and device for controlling a manipulator system
US8909372B2 (en) 2010-02-03 2014-12-09 Panasonic Corporation Robot system control method
CN102481691B (en) * 2010-02-03 2015-04-29 松下电器产业株式会社 Robot system control method
CN102481691A (en) * 2010-02-03 2012-05-30 松下电器产业株式会社 Robot system control method
US20190072938A1 (en) * 2012-03-27 2019-03-07 Sirqul, Inc. Controlling distributed device operations
US20150148952A1 (en) * 2012-06-29 2015-05-28 Mitsubishi Electric Corporation Robot control apparatus and robot control method
US9517556B2 (en) * 2012-06-29 2016-12-13 Mitsubishi Electric Corporation Robot control apparatus and robot control method
US20160023355A1 (en) * 2013-03-19 2016-01-28 Panasonic Intellectual Property Management Co., Ltd. Robot system control method and robot system
US9840008B2 (en) * 2013-03-19 2017-12-12 Panasonic Intellectual Property Management Co., Ltd. Robot system control method and robot system
US9802313B2 (en) 2013-05-16 2017-10-31 Kobe Steel, Ltd. Industrial-use robot and control system and control method for controlling operation of peripheral device
US10432922B2 (en) 2014-03-19 2019-10-01 Intuitive Surgical Operations, Inc. Medical devices, systems, and methods using eye gaze tracking for stereo viewer
US10278782B2 (en) * 2014-03-19 2019-05-07 Intuitive Surgical Operations, Inc. Medical devices, systems, and methods using eye gaze tracking
US11792386B2 (en) 2014-03-19 2023-10-17 Intuitive Surgical Operations, Inc. Medical devices, systems, and methods using eye gaze tracking for stereo viewer
US11438572B2 (en) 2014-03-19 2022-09-06 Intuitive Surgical Operations, Inc. Medical devices, systems and methods using eye gaze tracking for stereo viewer
US11147640B2 (en) * 2014-03-19 2021-10-19 Intuitive Surgical Operations, Inc. Medical devices, systems, and methods using eye gaze tracking
US10965933B2 (en) 2014-03-19 2021-03-30 Intuitive Surgical Operations, Inc. Medical devices, systems, and methods using eye gaze tracking for stereo viewer
US20180243901A1 (en) * 2015-08-25 2018-08-30 Kawasaki Jukogyo Kabushiki Kaisha Robot system
US10702350B2 (en) * 2015-08-25 2020-07-07 Kawasaki Jukogyo Kabushik Kaisha Robot system
US20180009109A1 (en) * 2016-07-08 2018-01-11 Rolls-Royce Plc Methods, apparatus, computer programs, and non-transitory computer readable storage mediums for controlling at least one of a first robot and a second robot to collaborate within a system
US10525595B2 (en) * 2016-07-08 2020-01-07 Rolls-Royce Plc Methods, apparatus, computer programs, and non-transitory computer readable storage mediums for controlling at least one of a first robot and a second robot to collaborate within a system
US10799309B2 (en) * 2017-03-31 2020-10-13 Verb Surgical Inc. Multi-functional foot pedal assembly for controlling a robotic surgical system
US20200008896A1 (en) * 2017-03-31 2020-01-09 Verb Surgical Inc. Multi-functional foot pedal assembly for controlling a robotic surgical system
US10368955B2 (en) * 2017-03-31 2019-08-06 Johnson & Johnson Innovation-Jjdc, Inc. Multi-functional foot pedal assembly for controlling a robotic surgical system
US10888383B2 (en) 2018-07-17 2021-01-12 Verb Surgical Inc. Robotic surgical pedal with integrated foot sensor
US10503199B1 (en) 2018-07-17 2019-12-10 Verb Surgical Inc. Pedal with sliding and locking mechanisms for surgical robots
US11547500B2 (en) 2018-07-17 2023-01-10 Verb Surgical Inc. Robotic surgical pedal with integrated foot sensor
US11786320B2 (en) 2018-07-17 2023-10-17 Verb Surgical Inc. Robotic surgical pedal with integrated foot sensor
CN114683273A (en) * 2020-12-31 2022-07-01 美的集团(上海)有限公司 Robot halt control method and device, robot and storage medium
US20230134924A1 (en) * 2021-11-01 2023-05-04 Dexterity, Inc. Robotic system to control multiple robots to perform a task cooperatively
US11772269B2 (en) * 2021-11-01 2023-10-03 Dexterity, Inc. Robotic system to control multiple robots to perform a task cooperatively

Also Published As

Publication number Publication date
JP3504222B2 (en) 2004-03-08
DE60127908D1 (en) 2007-05-31
EP1186386B1 (en) 2007-04-18
EP1186386A2 (en) 2002-03-13
JP2002073127A (en) 2002-03-12
DE60127908T2 (en) 2007-08-02
US6434448B1 (en) 2002-08-13
EP1186386A3 (en) 2005-08-24

Similar Documents

Publication Publication Date Title
US6434448B1 (en) Robot controller
US6330493B1 (en) Control system for synchronously cooperative operation of plurality of robots
EP0752633B1 (en) Machine controller
US5561742A (en) Multiple-robot control and interference prevention method
US5079491A (en) Robot control system
US9254567B2 (en) System for commanding a robot
US6167325A (en) CNC data correction method
JP2002287816A (en) Remote adjusting and diagnostic device
US20140364989A1 (en) Controller for controlling machine tool and robot
EP1616674A2 (en) Robot system provided with robot controller
JP3538362B2 (en) Synchronous or cooperative operation control device for multiple robots
EP0416123A1 (en) Manual intervention method for industrial robot
JPH07271415A (en) Cooperative robot control method
US20230099602A1 (en) Device control based on execution command and updated environment information
US4794547A (en) Robot control system
EP0477430B1 (en) Off-line teaching method for industrial robot
JP3421172B2 (en) Communication method of robot controller
JP2687936B2 (en) Multi-arm robot controller
JPH0619657B2 (en) Robot control method and apparatus
JPH08106320A (en) Automatic machine and control method for automatic machine
KR102423658B1 (en) Method, apparatus and system for controlling motion between multiple pcs
US20220331951A1 (en) Robot control system, lower-level control apparatus, and control method for robot
JP3194218B2 (en) Method and apparatus for independently operating a plurality of motors having the same axis in a transfer feeder device
EP0084957A1 (en) Industrial robot control method and system therefor
JPH08391B2 (en) Simultaneous control system for two-arm cooperative robot

Legal Events

Date Code Title Description
AS Assignment

Owner name: FANUC LTD., JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KOSAKA, TETSUYA;TAKAHASHI, HIROMITSU;REEL/FRAME:012271/0640

Effective date: 20010830

CC Certificate of correction
FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 8

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20140813