Abstract:
A machine has at least one actuated mechanism is remotely located from a control station. A two way real-time communication link connects the machine location with the control station. A controller at the machine location has program code that is configured to determine from data from one or more sensors at the machine location if an actual fault has occurred in the machine when the machine is performing its predetermined function and to determine for an actual fault one or more types for the fault and transmit the one or more fault types to the control station for analysis. The code in the controller is configured to be a preprogrammed trap routine specific to the machine function that is automatically executed when an error in machine operation is detected at the machine location. The controller also has a default trap routine that is executed when specific routine does not exist.

Description:
FIELD OF THE INVENTION 
     This invention relates to the teleoperation of one or more robots or other machines with at least one actuated mechanism. 
     DESCRIPTION OF THE PRIOR ART 
     Teleoperation of an industrial robot occurs when the operator of the teleoperated industrial robot is located apart from the robot when the industrial robot performs work. An industrial robot is an automatically controlled, reprogrammable, multipurpose manipulator programmable in three or more axes. Examples of industrial robots are robots located at a fixed position that are mobile by themselves or mobile because the robot is mounted on a device that it is itself mobile such as a motorized vehicle or mounted on a track or gantry etc. 
     By located apart from each other is meant that the operator and teleoperated industrial robot are either within the line of sight of each other or are separated from each other by a barrier through which the operator can see the robot that is controlled by the operator, or are at a distance from each other such that the operator cannot see the robot with his or her eyes. If there is a see through barrier, the barrier separates the operator from work performed by the robot that is hazardous to the health or safety of the operator. 
     The principal applications for teleoperated industrial robots are machining, handling of hazardous materials, assembling/disassembling, operation in a contaminated environment, inspection and service, or other operations in an unmanned, harsh outdoor environment such as offshore, desert, Arctic, Antarctic, subsea and space. 
     SUMMARY OF THE INVENTION 
     A system for teleoperation of a machine has at least one actuated mechanism and a predetermined number of degrees of freedom. The system comprises: 
     a control station remotely located from a location of the machine, the machine controlled from the control station to perform a predetermined function; 
     a two way real-time communication link between the machine and the remotely located control station; and 
     a controller at the machine location having therein program code, the program code configured to determine from data from one or more sensors at the machine location if an actual fault has occurred in the machine when the machine is performing the predetermined function, the program code further configured to determine from the sensor data when an actual fault has occurred one or more types for the fault and transmit the one or more fault types to the control station for analysis at the control station. 
     A system for teleoperation of a machine has at least one actuated mechanism and a predetermined number of degrees of freedom. The system comprises: 
     a control station remotely located from a location of the machine, the machine controlled from the control station to perform a predetermined function; 
     a two way real-time communication link between the machine and the remotely located control station; and 
     a controller at the machine location having therein program code, the program code configured to be a preprogrammed trap routine which will be automatically executed by the controller to take actions when an error in supervision of the machine by the control station is detected at the machine location. 
    
    
     
       DESCRIPTION OF THE DRAWING 
         FIG. 1  shows an embodiment for a system for a teleoperated industrial robot. 
         FIG. 2  shows an embodiment for the system of  FIG. 1  which also shows an obstacle or a distance between the teleoperator and the robot. 
         FIG. 3  shows a drawing for the safe stop and reduce contact force routine. 
         FIG. 4 a    shows a drawing for the safe stop and release contact force routine. 
         FIG. 4 b    shows the automatic retraction of the tool along the contact force direction. 
         FIG. 5  shows a flowchart for the robot fault detection and recovery system process. 
         FIG. 6  shows a flowchart for the robot fault detection and recovery system process. 
     
    
    
     DETAILED DESCRIPTION 
     Referring now to  FIG. 1 , there is shown a system  10  that has at least one remote robot station  12 , at least one operator station  14  and at least one communication link  16  between the robot station  12  and the operator station  14 . The physical distance between the remote robot station  12  and the operator station  14  can vary from “next door” to each other to “another continent”. 
     The robot station  12  includes at least one robot  12   a . Robot  12   a  is for example a six degree of freedom industrial robot available from ABB. 
     Robot station  12  also includes a robot controller  12   b  that includes a data interface which accepts motion commands and provides actual motion data, and optionally one or more remote sensor devices  12   c  that observe the robot station  12  and attached processes, such as cameras, microphones, position sensors, proximity sensors and force sensors. The sensor devices  12   c  may either be smart sensors, that is, the sensor device  12   c  includes data processing capability or not smart sensors, that is, the sensor device  12   c  does not include data processing capability. 
     If the sensor devices  12   c  are smart sensors then the output of the sensor devices is connected directly to robot controller  12   b . If the sensor devices  12   c  are not smart sensors, then their output can be connected either to a computation device  17  to process the sensor device output or to the communication link  16  described in more detail below so that the sensor device output is processed in data processing device  14   c.    
     The robot station  12  can also include as an option one or more actuators and other devices (not shown in  FIG. 1  but well known to those of ordinary skill in this art), that are mounted to the robot or next to the robot, such as grippers, fixtures, welding guns, spraying guns, spotlights and conveyors. 
     The controller  12   b  has the program which when executed controls the motion of the robot  12   a  to perform work. As is well known, the robot may hold a tool, not shown, which is used to perform work on a stationary or moving workpiece, not shown, or may hold the workpiece which has work performed on it by an appropriate tool. The remote sensor devices  12   c  provide input signals to the controller  12   b  that the controller uses to control the robot  12   a  in performance of the work. 
     The operator station  14  has at least one teleoperation input device  14   a  such as joysticks or stylus-type devices which the operator uses to create continuous motion signals (position or speed signals). When force feedback is added to these devices they become haptic devices. This feedback causes a vibration in the joystick and the operator feels the force feedback in the stylus-type devices. 
     The signals from these input devices  14   a  are used by the controller  12   b  to operate the robot  12   a . The device side also has at least one display device  14   b  and a data processing device  14   c  which is connected to both the input devices  14   a  and the display devices  14   b.    
     The monitoring (display) device  14   b  shows actual data about the robot motion and attached processes, for example, camera images, acoustic feedback and sensor values. The data processing device  14   c  processes data in both directions. Device  14   c  may for example be an industrial PC or a PLC. 
     The operator station  14  may also include a safety enable device (not shown in  FIG. 1 ) that is separate and distinct from input devices  14   a  and may for example be a three position switch. The safety enabling device enables and disables power to the robot  12   a  and attached processes. 
     The communication link  16  connects the robot controller  12   b  and the data processing device  14   c  to each other. The communication link  16  comprises one or more communication links  16 - 1  to  16 -N. 
     The communication link  16  between the operator station  14  and the robot station  12  may be realized with various technologies (e.g. fiber-optic/radio/cable on different types and layers of data protocols). A major portion or the entire infrastructure of the communication link may already exist and be used for other purposes than teleoperating robots. Typical examples are existing Ethernet installations with LAN and WLAN, Bluetooth, ZigBee and other wireless industrial links, point-to-point radio systems or laser-optical systems, and satellite communication links. 
     System  10  is operated to maintain a reliable “real-time” communication link  16  between device side  14  and the remotely located robot side  12 . The system  10  changes parameters of the communication link  16  and the robot motion, depending on the current available data rate and/or transmission time of the communication link  16 . 
     In system  10 , the operator has direct remote control of the motion of robot  12   a  and attached processes. Thus the term “real-time” as used herein is in the context of teleoperation of the motion of a robot  12   a  or a machine. The teleoperation is considered to be real-time if: 
     a maximum delay between operator commands, robot motion, and feedback about robot motion and attached processes at the operator station is not exceeded, and 
     the maximum delay is dependent on the speed of machine motion, i.e. with slow machine motion a slightly longer delay is acceptable, and 
     the maximum delay is deterministic, i.e. the delay time does not significantly vary over time. 
     Exceeding the maximum delay may result in damage to the workpiece or to the robot or other equipment on the robot side. For example, if the teleoperated robotic is used in a grinding application and the communication delay exceeds the maximum delay, this causes the operator to remove more material from the workpiece than desired. This excess removal of material can result in damage to the workpiece. Also for example, if the teleoperated robot is used in a material handling application, the communication delay exceeding the maximum delay causes the collision between the robot  12   a  and other equipment on robot side. 
     This understanding of “real-time” is similar to real-time computation, where not only wrong results of logic and arithmetic operations can occur but also not timely results cause errors. 
     A fault such as a collision, communication failure or a dangerous robot movement may occur during the operation of a teleoperated robot. Traditionally the robot is stopped immediately upon the occurrence of the fault by an emergency stop (E-stop) mechanism. This mechanism stops the robot movement by mechanical braking systems and cuts off power to the robot motors. However, the E-stop makes recovery difficult and inconvenient to the operator of the teleoperated robot as the operator cannot access the teleoperated robot due to the distance between the operator and the robot or the hazardous environment in which the teleoperated robot is used. 
       FIG. 2  illustrates the robot teleoperation system  10  in a manner similar to that shown in  FIG. 1  with the added elements described herein. An element in  FIG. 2  that is identical to the same element shown in  FIG. 1  has the reference numeral used for that element in  FIG. 1 . For ease of illustration, the display  14   b  and the data processing device  14   c  shown in  FIG. 1  are not shown in  FIG. 2 . 
     System  10  has a robot  12   a  that resides in a remotely located robot station  12  with a tool  12   d  held by robot  12   a  and sensors  12   c  that are on and surround the robot  12 . A controlling input device  14   a  in the operator station  14  is connected with the robot  12   a  through wire or wireless communication such as communication link  16  of  FIG. 1 . An operator  14   d  operates the device  14   a  and looks either at a monitor  14   b  (see  FIG. 1 ) to observe the robot  12   a  from a distance or through a barrier  18  that is between the robot  12   a  and the controlling input device  14   a.    
     While not shown in  FIG. 2 , there is a controller such as controller  12   b  of  FIG. 1  that is associated with robot  12   a . The controller  12   b  is a computing device connected to the robot  12   a  that is programmed to respond to commands from the controlling input device  14   a  to use the tool  12   d  to perform a predetermined operation. 
     The error handling features of system  10  are as follows: 
     1) When an error occurs, an application specific user programmable trap routine written in robot program language is automatically executed. There is no need for any human intervention. The trap routine can handle application specific requirements such as for example turning off a spindle. 
     2) The trap routine is invoked automatically when a teleoperation supervision error is generated by the robot controller  12   b . For example, the trap routine is automatically invoked when there is a loss of communication or the robot speed limit is exceeded. 
     3) A default trap routine is provided if an application specific trap routine is not provided by a programmer for the user of the robot  12   a.    
     4) When a teleoperation error occurs, the robot  12   a  can take some standard recovery actions in addition to the application specific actions such as reducing the robot position gain so that the robot  12   a  is soft and can backtrack along the path or contact force direction to reduce contact. These actions can be put in the trap routine. A soft robot has a reduced stiffness and this means that less contact force is needed to cause the robot  12   a  to move a given distance. 
     Several examples of a safe stop routine are as follows: 
     Safe stop and reduce contact force routine: This routine is a controlled stop with power available to the motors to achieve the stop for all contact teleoperation applications. The robot position at stop acts as a reference position and the stiffness parameters A and B, shown in  FIG. 3 , in the robot controller  12   b  are decreased, that is, the robot  12   a  is becoming “soft”. If there is an external contact force (F in  FIG. 3 ) between the robot  12   a  and the part  30 , the robot  12   a  acts as a spring and moves away from the stop position along the contact force direction. Therefore the contact the force is reduced. 
     Safe stop and release contact force routine: 
     This routine releases all the contact pressure after a controlled stop. The robot controller  12   b  records the robot&#39;s recent path (the arrow shown in  FIG. 4 a   ) from the nearest free space, that is no contact force, to the current stop position, which is either controlled by the operator  14   d  through the tele-operated device  14   a  or the robot program. Then the robot  12   a  automatically retracts the tool  12   d  along this path after the safe stop. This small movement releases all the contact pressure. 
     The robot  12   a  may also automatically retract the tool  12   d  along the contact force direction, which is the combination of Fx and Fy shown in  FIG. 4 b   , to the nearest free space. 
     This safe stop and release contact force can be used in contact teleoperation applications, such as telemachining. For example in the teleoperated grinding application, after the safety stop, the grinding tool needs to be moved away from the part in order to prevent uncontrolled material removal. The robot controller  12   b  can use the remembered, that is recorded recent, path, which is how the operator  14   d  moved the grinder from the nearest free space to the current position, to retract the grinder. 
     5) For loss of communication, the robot  12   a  is stopped if it is still moving and is then put into the safe stand still supervision mode so that the robot  12   a  does not move its axes. When the robot  12   a  is moving, the safe stand still supervision mode energizes the servo and drive system for the motor of each robot axis, but holds the robot axes not to make any movement. This mode allows the robot  12   a  to quickly resume motion after the communication is recovered. When the robot  12   a  is not moving, the robot  12   a  is in a safe stop mode. The servo and drive system is not energized. The mechanical brake is engaged to hold each axis. 
     Safe Stand-still stop is a controlled stop with power available to the robot motors to achieve the stop. The robot controller  12   b  supervises that the robot  12   a  is standing still even if the servo and drive systems are in regulation, that is, if these systems are energized the robot controller prevents robot motion until communication is restored. 
     This Safe Stand-still stop can be used in remote non-contact teleoperation applications, for example, teleoperated inspection. If the communication between the teleoperation device  14   a  and robot controller  12   b  is lost, the robot  12   a  holds the sensor at the Safe Stand-still stop position and waits for the communication to recover. This stop enables the operator  14   d  to continue the teleoperation immediately once the communication is restored, saving cycle time and wear on the contactors and the brakes. 
     6) Robotic measurement devices (sensors) such as an encoder, force sensor and vision camera (see  FIG. 1 ) are used in the fault status detection and recovery process monitoring; and 
     7) The fault recovery is performed on both sides of the system  10 —the teleoperated robot  12   a  and its controlling device  14   a.    
     A robot program such as RAPID available from ABB is running in the background in the robot controller  12   b  to monitor the robot motion through various sensors on and around the robot  12   a . When a fault (e.g. a fixture failure) or undesired motion is detected, the robot program receives the fault status information from the sensors, informs the operator  14   d  at the controlling device  14  and asks for the recovery command. The operator  14   d  selects a specific fault handling and recovery procedure to be used and issues the recovery command. Upon receipt of the command, the robot  12   a  follows the predetermined rules that reside in the robot controller  12   b  and starts the automatic fault recovery procedure. 
       FIG. 5  shows the flowchart  500  for the robot fault detection and recovery system process. At block  502  data about a possible fault that has been detected is received by the robot program. At decision block  504  the robot program determines from the received data if there is an actual fault. If the answer is no, the program returns back to block  502 . If the answer is yes, the program proceeds to block  506  where the information from the sensors is read and the program determines from that information the fault types. The information about the fault types is sent to the operator and at block  508  the operator selects the recovery procedure and issues the recovery command for that procedure. 
     There are as shown in block  510  stored predefined rules for recovering from a fault. The rules ensure that the recovery from the fault meets the safety requirements for the operation of the robot. At block  512  the recovery process is started using the predefined rules and the issued recovery command. 
     At decision  514  it is determined if the system has recovered from the fault. If not, the flow returns to block  512 . If the system has recovered from the fault, the flow proceeds to block  516  where the recovery is finished and the controlling device is informed that the recovery is completed from the robot side. 
     During the recovery, the operator  14   d  on the device side  14  can monitor the progress and status of the recovery using the sensor data obtained from the robot side  12 . If the operator  14   d  determines that the automatic recovery process is not going as expected, that is, the system is not recovering, the operator  14   d  can interfere to alter the recovery process to a desired recovery. However, once started, the robot recovery process can be performed independently without operator interference. 
     It should be noted that loss of communication is also a possible fault in which the operator  14   d  does not have the control over the robot  12   a . In this case, the robot  12   a  has to conduct the recovery by itself based on predefined rules stored in the robot controller  12   b . For example, the robot  12   a  could retreat from its current task and return to home in a safe way or stay at the current position (status) awaiting further commands from the controlling device  14   a  after the communication is resumed. 
     When the system is recovered from a fault on the robot side  12 , the controlling device  12   b  is informed and starts its own recovery process. The robot program (RAPID) recovery procedure is also used in the device side fault recovery. 
       FIG. 6  shows a flowchart  600  for the robot fault detection and recovery system process. At  602 , the device side has received the information from the robot side that the recovery has occurred at the robot side. At  604 , the recovery at the device side is initiated based on the information from the robot side and the predefined rules  606 . 
     Decision  608  asks if the device side recovery is finished. If not, the flow returns back to block  604 . If it has, the flow proceeds to block  610  where the recovery at the device side is synchronized with the recovery at the robot side. 
     It is to be understood that the description of the foregoing exemplary embodiment(s) is (are) intended to be only illustrative, rather than exhaustive, of the present invention. Those of ordinary skill will be able to make certain additions, deletions, and/or modifications to the embodiment(s) of the disclosed subject matter without departing from the spirit of the invention or its scope, as defined by the appended claims.