Data processing: generic control systems or specific application – Specific application – apparatus or process – Robot control
Reexamination Certificate
2002-05-22
2004-10-19
Black, Thomas G. (Department: 3661)
Data processing: generic control systems or specific application
Specific application, apparatus or process
Robot control
C700S174000, C700S245000, C700S248000, C118S500000, C029S464000, C901S031000, C901S041000
Reexamination Certificate
active
06807461
ABSTRACT:
BACKGROUND AND SUMMARY OF THE INVENTION
The present invention relates generally to robotic machines, and more particularly, to a robot control system for controlling multiple robotic machines where at least some of the robotic machines are controlled using a control program that resides on a controller other than the local controller of the controlled robotic machines.
When first introduced into the manufacturing environment, each automated robotic machine was dedicated to performing a specific task independent of any other robotic machine. Each robotic machine typically included a dedicated controller and an associated motion system for controlling its physical movements. The operation of the robotic machine is dictated by control program instructions which are embodied, in a control program. The control program instructions are converted by the controller into motion control commands which in turn are carried out by the motion system of the robotic machine. Thus, each robotic machine required its own control program.
As automation became more prevalent in the manufacturing environment, it was envisioned that robotic machines would cooperatively work together to complete various manufacturing tasks. For example, a first robotic machine may transfer a workpiece from a conveyor into a workstation. At the workstation, one or more additional robotic machines would perform various manufacturing operations on the workpiece. Lastly, the workpiece is transferred back to the conveyor and transported to the next workstation.
In this example, the various tasks need to be coordinated amongst the robotic machines. For instance, the first robotic machine is responsible for transferring the workpiece to and from the conveyor. Additionally, this robotic machine must know how long to wait before removing the workpiece from the workstation, thereby allowing the completion of the manufacturing operations by the other robotic machines. Since each robotic machine relies on its own control program, coordination amongst the robotic machines must be designed into the control programs residing on each robotic machine. In this way, coordinating tasks amongst robotic machines is difficult and complex.
One approach for simplifying the coordination amongst robotic machines is illustrated in FIG.
1
. In this approach, a single controller
4
uses one control program
6
to provide motion control commands to a plurality of robotic machines
8
. In other words, all the robotic machines physically share the same controller to perform their respective tasks. In order for each robotic machine to perform an independent task, the single controller must support the execution of multiple control programs in a multi-tasking environment, such that the coordination of tasks between the robotic machine is dispersed amongst one or more control programs. Because all of the robots are controlled from the same controller, it is relatively straightforward to coordinate the control among the tasks, because 1) multi-tasking programming constructs, such as semaphores and mutexes are provided for the programmer on such a controller, and 2) It is usually possible during simple sequences involving multiple robots for a single control program to control multiple machines.
The problem with the above solution is that the transfer of control of one robot between various control programs is limited only to that robot controller. Control of simple sequences between robots residing on different controllers remains a challenging task.
One of the objectives of the present invention is to dynamically exchange control of a given robot between various control programs running on different robot controllers. This makes it possible for robots controlled by different controllers, working more or less independently to occasionally come under the control of a single control program, so that one program can control a sequence involving more than one robot. This is important, because it is much easier for a programmer to create a reliable sequence of events in a single program thread than to try to cause two or more separate programs to perform a set of events in sequence. For instance, passing a part from one robot to another or moving more than one robot simultaneously with a single control instruction.
In order for the dynamic exchange of control to work well, a robot control system should include four key features. First, a control program must be able to issue commands to more than one robot either in sequence or simultaneously. This is how a simple sequence is achieved. For example, the control program would move a robot carrying a part to a drop position and open its gripper to drop the part. The same control program would then move a second robot to the drop position and close its gripper to pick up the part.
Second, the motion system, working on behalf of a given robot, must be able to accept commands for that robot from more than one control program. By this feature, a robot can work independently while being controlled by one control program, then work in a sequence or simultaneously with another robot by accepting commands from a different control program.
Third, a mutual exclusion mechanism should be available, so that control programs do not simultaneously issue commands to the same robot. Since one of the objectives of this invention is convenience of programming, a mutual exclusion mechanism is built into the robot control system. As further described below, the mutual exclusion method may be of several different forms.
Fourth, an instruction source must be able to issue motion commands from a control program across a communications network to a motion system residing on a robot controller different from where the instruction source resides. This is necessary, so that the locality of cooperation is unrestricted. For example, if the control program must reside on the same controller as the motion system for the robot it can control, then the exchange of control between control programs is limited to only the robots controlled by that robot controller. The locality of exchange is thus limited to those robots.
The term “multitasking” is used to describe a known feature of conventional robot controllers. This term refers to the ability of the robot controller to perform several tasks simultaneously. Several different methods may be used to perform several tasks simultaneously. These include multitasking interpreters that run separate program files simultaneously, multitasking operating systems that can run multiple compiled programs simultaneously, special interpreters that can run multiple co-routines simultaneously, or other methods used to run multiple threads of execution simultaneously. In this application, the meaning of “control program” is equivalent to a task, regardless of the method used to perform a task. The meaning of “instruction source” is any of the mechanisms capable of executing one or more control programs on the same robot controller. It is also possible that a multi-tasking instruction source could exist on its own computer, not part of a robot controller
Some known robot controllers have multitasking capabilities, but restrict each control program so that it can control only one robot and each robot can be run only by that control program. The present invention clearly requires that no such restriction is present, because this would contradict the first two features listed above. Other known robot controllers have more general multitasking capabilities but may be missing one of the first three features listed above. However, no known robot control systems, including those with multitasking capabilities, implement all four of the above listed features.
The present invention takes a different approach to facilitate the coordination amongst numerous robotic machines. A robot control system may be comprised of a plurality of robot controllers, where each of the controllers includes an associated motion system and is adapted to control a physically attached robotic machine. However, in accordance with the present in
Kneifel, II R. William
Stoddard Kenneth A.
Black Thomas G.
Kuka Roboter GmbH
Marc McDieunel
McGlew and Tuttle , P.C.
LandOfFree
Coordinated robot control from multiple remote instruction... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Coordinated robot control from multiple remote instruction..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Coordinated robot control from multiple remote instruction... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3286680