Automation equipment control system

Information

  • Patent Grant
  • 6675070
  • Patent Number
    6,675,070
  • Date Filed
    Monday, August 26, 2002
    22 years ago
  • Date Issued
    Tuesday, January 6, 2004
    21 years ago
Abstract
A automation equipment control system comprises a general purpose computer with a general purpose operating system in electronic communication with a real-time computer subsystem. The general purpose computer includes a program execution module to selectively start and stop processing of a program of equipment instructions and to generate a plurality of move commands. The real-time computer subsystem includes a move command data buffer for storing the plurality of move commands, a move module linked to the data buffer for sequentially processing the moves and calculating a required position for a mechanical joint. The real-time computer subsystem also includes a dynamic control algorithm in software communication with the move module to repeatedly calculate a required actuator activation signal from a joint position feedback signal.
Description




FIELD OF THE INVENTION




This invention relates to an apparatus and method for controlling automation equipment and more particularly, to a versatile control system suitable for controlling automation equipment of various electromechanical configurations.




COPYRIGHT NOTIFICATION




Portions of this patent application contain materials that are subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document, or the patent disclosure, as it appears in the Patent and Trademark Office.




BACKGROUND OF THE INVENTION




Industrial robots and similar highly flexible machine tools gained commercial acceptance during the late 1970s. Since then, the use of industrial robots has increased substantially, particularly for automobile manufacturing.




The guiding purpose for industrial robots is manufacturing flexibility. Robots allow assembly lines and work cells to make different articles with no or minimal manual equipment changes. The list of robot applications in manufacturing is long and ever increasing. Examples include computer vision inspection, spot and arc welding, spray painting, drilling, part placement, and adhesive application.




The boundary between robots and machine tools is not strictly defined, however. Compared with conventional machine tools, robots generally have more joints (or axes) of motion thereby offering more degrees of freedom for positioning an end effector. In the robotics field, the term “end effector” has been adopted to cover the variety of active equipment carried by robots. Such equipment varies according to the manufacturing application, e.g. spot welding.




Robots generally include positioning arms with mechanical joints, actuators such as motors for causing movement about the joints, and sensors which aid in determining the position (or pose) of the robot. Although most include these core components, industrial robots new and old otherwise vary greatly in their electromechanical configurations.




For example, some robots rely only on revolute, (i.e. rotary) joints, while some are equipped with combinations of linear and revolute axes. Robots with a series of extending arms and revolute joints have been labeled articulating robots.




Even among a given class of robots there is mechanical variation. The revolute joints of articulating robots may be, for example, offset from their supporting arm—a shoulder joint, centered to the supporting arm—an elbow joint or axially aligned with the supporting arm—a wrist joint. Likewise, linear joints may be co-linear or orthogonal. Actuators and feedback sensors are another source of the varying configurations. For example, some robots are equipped with stepper motors, others servo motors.




Electronic control systems are employed to control and program the actions of robots. For the necessary coordinated action between the end effector and the robot positioning, robot control systems preferably provide a level of software programming as well as an interface to field I/O and end effector subsystems. Conventional robot control systems are collections of customized electronics that vary according to robot configuration and robot manufacturer.




In manufacturing processes, robots are directed by a list of control instructions to move their respective end effectors through a series of points in the robot workspace. The sequences (or programs) of robot instructions are preferably maintained in a non-volatile storage system (e.g. a computer file on magnetic-disk).




Manufacturing companies, the robot users, through their engineers and technicians, have come to demand two important features from manufacturing control systems. First, robot users seek control systems implemented using commercially available standard computers and operating systems rather than customized proprietary systems. This trend toward the use of standard computer hardware and software has been labeled the “open systems movement.”




Control systems based on standard computers are preferred because they offer robot users simplified access to manufacturing data via standard networks and I/O devices (e.g. standard floppy drives), the ability to run other software, and a competitive marketplace for replacement and expansion parts. Underlying the open systems movement is the goal of reducing robot users' long-term reliance on machine tool and robot manufacturers for system changes and maintenance.




A second feature sought by robot users is a common operator and programmer interface for all robots, facility (if not company) wide. A common user interface for all robots reduces the need for specialized operator training on how to use the customized proprietary systems.




With respect to the open-systems feature, efforts at delivering a robot control system based on standard, general purpose computer systems have not been fully successful because of the limitations of general purpose operating systems. Robot safety and accuracy requirements dictate that robot control systems be highly reliable, i.e. crash resistant, and tied to real-time. The multi-feature design objectives for general purpose operating systems such as Microsoft Windows NT® have yielded very complex, somewhat unreliable software platforms. Moreover, such systems cannot guarantee execution of control loops in real-time.




With respect to the common operator interface features, attempts to offer even limited standards to operator interfaces have not extended beyond a specific robot manufacturer. Notwithstanding the difficulty in getting different robot manufacturers to cooperate, the wide variety of electromechanical configurations has heretofore substantially blocked the development of robot control systems with a common operator interface.




Accordingly, it would be desirable to provide an improved robot control system that both employs standard computer systems and accommodates robots of different configurations. Specifically, it would be desirable to provide the advantages of open systems and a common operator interface to robot control.




SUMMARY OF THE INVENTION




Robot control systems of the present invention provide robot control via commercially standard, general purpose computer hardware and software. The control systems and methods according to the present invention are usable with robots of varying electromechanical configurations, thereby allowing a common operator interface for robots from different robot manufacturers.




The present invention provides a control system for running or processing a program of robot instructions for robots equipped with a mechanical joint, a mechanical actuator to move the joint and a position feedback sensor. The robot mechanical actuators receive an activation signal and the feedback sensor provides a position signal.




A control system embodying the present invention includes a general purpose computer with a general purpose operating system and a real-time computer subsystem in electronic communication with the general purpose computer and operably linked to the mechanical actuator and the position feedback sensor. The general purpose computer includes a program execution module to selectively start and stop processing of the program of robot instructions and to generate a plurality of robot move commands.




Within the real-time computer subsystem is a move command data buffer for storing a plurality of move commands. The real-time computer subsystem also includes a robot move module and a control algorithm. The move module is linked to the data buffer to sequentially process the move commands and calculate a required position for the mechanical joint. The control algorithm is in software communication with the robot move module to repeatedly calculate a required activation signal from the feedback signal and the required position for the mechanical joint.




Another aspect of the present invention provides a robot control system suitable for controlling robots of different electromechanical configurations. The control system includes a robot-independent computer unit in electronic and software communications with a robot-specific controller unit.




The robot-independent computer unit is operably linked to the robot by an I/O interface and includes a video display and a first digital processor running an operator interface module for creating a sequence of robot move commands. The robot-specific controller unit includes a second digital processor running a real-time tied operating system and a robot move module for executing the robot move commands.




The operator interface module preferably includes a configuration variable for storing data defining the electromechanical configuration of the robot, a first code segment for generating a first operator display according to a first electromechanical configuration, a second code segment for generating a second operator display according to a second electromechanical configuration, and a third code segment for selecting the first or second code segment according to the electromechanical configuration.




Control systems according to the present invention are well suited for use with various types of automation equipment having actuator-driven mechanical joints. The automation equipment category includes, but is not limited to, robots, machine tools, laboratory liquid-handling systems, computer media handling systems, therapeutic systems, surgical systems, and the like.




In this aspect, the present invention provides a control system for processing a program of instructions for automation equipment having a mechanical joint, a mechanical actuator to move the joint and a position feedback sensor. The mechanical actuator is set up to receive an activation signal and the feedback sensor is set up to provide an indication of the joint's position. The equipment control system comprises a general purpose computer with a general purpose operating system and a real-time computer subsystem operably linked to the mechanical actuator and the position feedback sensor. The real-time computer subsystem is in electronic communication with the general purpose computer, preferably via a standard data bus.




The general purpose computer includes a program execution module to selectively start and stop processing of the program of instructions for the automation equipment and to generate a plurality of corresponding move commands. The real-time computer subsystem has a move command data buffer for storing the plurality of move commands, a move module linked to the data buffer to sequentially process the plurality of move commands and calculate a required position for the mechanical joint of the automation equipment.




Yet another aspect of the present invention is the capability to simultaneously control multiple such automation devices. According to this aspect, the present invention provides a control system suitable for controlling a plurality of automation devices with mechanical joints and mechanical actuators to move the respective joints. The control system comprising a general purpose computer with a general purpose operating system and a plurality of real-time computer subsystems each in electronic communication with the general purpose computer.




The general purpose computer includes a video display and a first digital processor adapted to run an operator interface, which serves to create a sequence of device move commands. Each real-time computer subsystem is operably linked to one of the automation devices. Each subsystem has a digital processor adapted to run a real-time tied operating system and a move module for executing the move commands.




Other advantages and features of this invention will be readily apparent from the following detailed description of the preferred embodiment of the invention, the drawings, and the appended claims.











BRIEF DESCRIPTION OF THE DRAWINGS




In the accompanying drawings that form part of the specification, and in which like numerals are employed to designate like parts throughout the same,





FIG. 1

is schematic block diagram illustrating the software programs, computer hardware and robot connections of a robot control system according to the present invention;





FIG. 2

is simplified flowchart of a preferred embodiment of software and method steps for providing a watchdog intercommunication between the general purpose computer and the real-time computer subsystem;





FIG. 3

is a side elevation view of an articulating industrial robot illustrating another type of robot configuration controllable by embodiments of the present invention;





FIG. 4

is a side elevation view of an industrial robot equipped with linear joints and illustrating one of the many types of robot configurations controllable by embodiments of the present invention;





FIG. 5

is a simplified flow chart of preferred software and method steps for accommodating robots of different electromechanical configurations and demonstrating the role of the configuration variable in control systems according to the present invention;





FIG. 6

is likewise an exemplary operator interface display screen generated in response to data stored in the configuration variable specifying a rotational joint configuration;





FIG. 7

is an exemplary operator interface display screen generated in response to data stored in the configuration variable specifying a linear joint;





FIG. 8

is schematic block diagram illustrating the software programs, computer hardware and equipment connections of an automation equipment control system according to the present invention applied to a laboratory liquid-handling system;





FIG. 9

is schematic block diagram illustrating a control system according to the present invention applied to simultaneously control two different automation equipment centers; and





FIG. 10

is a schematic block diagram showing features of the watchdog intercommunication applied to multiple processes in the general purpose computer.











DESCRIPTION OF THE PREFERRED EMBODIMENTS




The invention disclosed herein is, of course, susceptible of embodiment in may different forms. Shown in the drawings and described herein below in detail are preferred embodiments of the invention. It is to be understood, however, that the present disclosure is an exemplification of the principles of the invention and do not limit the invention to the illustrated embodiments.




In the FIGURES, a single block or cell may indicate several individual software and/or hardware components that collectively perform the identified single function. Likewise, a single line may represent several individual signals or several instances of software data sharing or interconnection.




Robots as well as other manufacturing machines include positioning arms with mechanical joints, positioning actuators such as motors for causing movement about the joints, and position feedback sensors which provide an indication of the position of some part of the robot. Automation equipment other than robots generally also include positioning actuators to cause movement about joints, and feedback sensors to provide an indication of the position of parts of the automation equipment.




As used herein, the term “automation equipment” is a reference to the variety of devices used to automate otherwise manual tasks and having mechanical joints for defined motion and mechanical actuators for powering movement about the mechanical joints. Exemplary automation equipment includes industrial robots, laboratory robots, machine tools, parts handlers, laboratory liquid-handling systems, computer media loading systems, therapeutic systems, surgical systems, and the like.




As used herein, the term “mechanical actuator” is a reference to the variety of devices used for robot motion. Exemplary robot actuators are hydraulic pistons, pneumatic pistons, servo motors, stepper motors and linear motors.




As used herein, the term “mechanical actuator” also refers to the variety of devices used to move the joints of automation equipment (or devices). Hydraulic pistons, pneumatic pistons, servo motors, stepper motors and linear motors are equally exemplary of actuators used for the various types of automation equipment other than robots.




Referring to

FIG. 1

, the elements of a control system


10


are shown with an industrial robot


4


, a Cincinnati Milacron 776 robot. Robot


4


includes a series of revolute joints


5


,


6


,


7


and


8


, corresponding servo motors, and an end effector


9


. Control system


10


includes a general purpose computer


14


and a real-time computer subsystem


16


.




The phrase “general purpose computer,” as used herein, refers to commercially available standard computers which are designed for multiple applications as opposed to CPU-based electronics customized for a specific application such as device control. Examples include the well-known group of computers conventionally labeled IBM-compatible personal computers, or more simply PCs. PCs are based on complex instruction set (CISC) CPUs from Intel Corporation (INTEL), Advanced Micro Devices, Inc. (AMD), VIA Technologies, Inc, and the like. The related, evolving CPU product line from INTEL includes CPU chip sets available under the designations “80486®,” “Pentium®,” “Pentium® II,” “Pentium® III.” An exemplary CPU product line for general purpose computers by AMD is available under the designation “AMD-K6®.” VIA Technologies, Inc. CPUs for general purpose computers are sold under the designation “Cyrix®.”




General purpose computers based on reduced instruction set (RISC) CPUs are also well known. Examples include computers based on the Alpha® chip set available from the Compaq Computer Corporation.




As indicated in

FIG. 1

, general purpose computer


14


operates with a general purpose operating system. The phrase “general purpose operating system” is a reference to commercially standard operating systems such as those available from the Microsoft Corp. under the designations MS-DOS®, Windows 95®, Windows 98®, Windows NT®, Windows 2000®, Windows XP®. Other examples of general purpose operating systems include Macintosh® (Apple Computers, Inc.), UNIX (various resellers), Open VMS® (Compaq Computer Corporation), and the like. The general purpose operating system is preferably a member of the group consisting of a Windows XP®, a Windows-NT®, a Windows 2000®, a Windows 95®, a Windows 98®, an Open VMS®, a PC/MS DOS, and a Unix.




Installed for running on the general purpose computer are a program execution module


18


, an operator interface module


20


, and watchdog communication code segments


22


. The term “module,” as used herein refers to a software element such as a program, subprogram, software process, subroutine, or grouping of code segments and the like. The software modules of control system


10


are preferably discrete executable programs which run as discrete processes. Unless otherwise indicated, the software modules and code segments are configured to share access to a variety of software variables and constants as needed through subroutine calls, common shared memory space, and the like.




Program execution module


18


processes programs of robot instructions


24


, which can be stored as data files as represented in FIG.


1


. From robot instruction programs


24


, program execution module


18


generates robot move commands


26


for delivery to real-time computer subsystem


16


. Via execution module


18


, the relatively more human readable robot instructions


24


generated by a robot operator are interpreted and translated into move commands


26


for real-time computer subsystem


16


.




As well, program execution module


18


allows operator control of the running of robot programs


24


by selectively starting and stopping the transfer of move commands


26


to real-time computer subsystem


16


in response to prompts from the operator via operator interface module


20


.




Operator interface module


20


is operably linked to an operator display screen


28


, a keyboard and/or mouse


30


, and other standard peripherals as desired. In a preferred embodiment, display screen


28


is a touch screen which allows a robot operator to input prompts and data through both displays and keyboard/mouse


30


.




With robot operator prompts and selections, operator interface module


20


allows robot instruction files


24


to be loaded from disk and processed (or executed) by program execution module


18


for controllably moving robot


4


. Operator interface module


20


generates operator screens and accepts from the operator numeric data and prompts. Numeric data entries are communicated to other program modules as necessary. Prompts by the robot operator to start and stop the running of a robot program are received by operator interface module


20


and forwarded to execution module


18


.




In addition to accepting operator inputs for loading, starting and stopping programs


24


, operator interface


20


preferably includes an editor for use by an operator to generate new programs of robot instructions


25


. Because the present invention provides a control system which relies upon general purpose computers such as a Windows NT PC, it is equally possible to generate robot programs on another PC such as an office PC and then transfer the file to general purpose computer


14


through standard peripherals such as disk drives or computer network connections.




General purpose computer


14


is electronically linked for data exchange (i.e. communication) with real-time computer subsystem


16


. Real-time computer subsystem


16


preferably includes a hardware, firmware and software combination designed for process control applications. As opposed to general purpose computers with general purpose operating systems, real-time computers provide for substantially uninterruptible execution of calculations required for a plurality of control loops with relatively fast cycle times (e.g. 0.5-2 msec).




Because of the extensive signal processing requirements, the CPU computer of real-time computer subsystem


16


is preferably a DSP-based computer. In this category of DSP-based control computers, the systems commercially available from Delta Tau Data Systems, Inc. (Chatsworth, Calif.) under the designations “PMAC”, “PMAC2,” “Turbo PMAC” and “UMAC” are presently preferred.




Real-time computer subsystem


16


includes a robot move module


32


, a move command data buffer


34


, kinematic models


36


, servo control algorithms


38


, and watchdog intercommunication code segments


40


. Real-time subsystem


16


also includes I/O hardware and software drivers to provide an operable link to the positioning related electronics of robot


4


. Represented by block


42


in

FIG. 1

are the hardware and software components necessary for receiving and translating robot feedback signals


44


into computer data feedback signals


46


. Likewise, block


48


represents the components necessary for converting computer data setpoints


50


into actuator-appropriate activation signals


52


.




Activation signals


52


and feedback signals


44


may be analog signals, digital signals or combinations of both depending upon the configuration of robot


4


. For example, the typical motor-with-amplifier actuator calls for an analog activation signal. Newer, so-called “smart” devices can be directly activated by digital signals, however. Thus, the type of signal conversion performed by I/O systems


42


and


48


varies by robot configuration.




Robot move module


32


is resident in real-time computer subsystem


16


to accept move commands


26


and feedback signals


44


/


46


to generate the necessary activation signals


50


/


52


. Robot move module


32


relies upon kinematic models


36


and servo control algorithms


38


to translate move commands


26


into required joint positions and then appropriate activation signal setpoints


50


. In a preferred embodiment of the present invention, move commands


26


are expressed as changes in joint position or as changes in end-effector position.




Move commands based on joint position rely upon a predefined range on a one-dimensional joint axis model, for example, +90 degrees to −90 degrees for a revolute axis and 0 to 1200 millimeters (mm) for a linear joint. An example of a move command based on joint position is “set joint one at 60 degrees.” In a preferred embodiment of the present invention, robot move module


32


is programmed to accept joint move commands as a function call specifying the position of all robot mechanical joints


5


,


6


,


7


and


8


, thereby allowing only one or all joints to be moved, as desired.




Move commands expressed as end-effector positions rely upon a predefined, but customary, three-dimensional coordinate system for locating the end-effector. A move command based on end-effector position is a call to move the end effector to a point in the end-effector's workspace.




For joint position move commands, robot move module


32


includes software models for translating data from feedback signals


46


into joint position. The required calculation varies according to joint type and the type feedback signal available. For example, a feedback sensor directly measuring an indication of joint position requires limited translation, while a feedback sensor measuring the number of rotations of a positioning motor may require a more complex translation.




To process move commands based on end-effector position, robot move module


32


additionally includes a kinematic model for calculating the required position of joints


5


,


6


,


7


and


8


, given a desired position for end effector


9


.




More specifically, real-time computer subsystem


16


uses kinematic model algorithms for computation of the forward and inverse kinematics of the robot. Forward kinematics computation refers to the determination of end-effector position and orientation given known joint positions or actuator positions of the robot. Inverse kinematics is the determination of the joint angle or actuator positions given an end-effector position.




The required combination of individual joint axes models and overall kinematics models is represented in

FIG. 1

by block


36


.




Kinematic algorithms are described in other patents and the technical literature. See, for example, Chapters 3 and 4 of Craig, John J.


Introduction to Robotics: Mechanics and Control,


2nd Ed., Addison-Wesley, 1989. The specific models employed vary according to the electromechanical configuration of the robot to be controlled.




Because the positioning actuator and feedback sensor combination make up a dynamic system, real-time computer subsystem


16


also includes control algorithms


38


to provide the required dynamic calculations. Preferred among available closed loop servo motor control schemes is a proportional-integral-derivative (PID) with feedforward algorithm.




Data buffer


34


is a software variable available to programs in both general purpose computer


14


and real-time computer subsystem


16


for storing multiple move commands


26


received from program execution module


18


. Although the desired storage capacity for data buffer


34


can vary, in a preferred embodiment of the present invention data buffer


34


and connected modules are preferably configured such that from 2 to 10, and more preferably from 3 to 4, move commands are stored.




With move command data buffer


34


, control system


10


provides for substantially continuous, uninterrupted control of robot


4


even in response to program execution delays in general purpose computer


14


.




As noted above, general purpose computers running general purpose operating systems are relatively unreliable, exhibiting unpredictable control program interruption. Specific motion control of robot


4


by real-time computer subsystem


16


is not affected by unpredictable delays in operations of general purpose computer


14


because robot move module


32


can continue to draw move commands


26


from data buffer


34


.




Although a variety of data transfer mechanisms are available to provide electronic and software-level communication between general purpose computer


14


and real-time computer subsystem


16


, a commercially standard data bus backplane is preferred. The data bus connection is symbolically represented in

FIG. 1

by reference numeral


54


. Suitable data bus standards can be selected from the group consisting of an ISA bus, a PCI bus, a VME bus, a universal-serial-bus (USB), an Ethernet connection, and the like. The ISA bus, the PCI bus, and the VME bus are exemplary standard data buses, with the ISA bus being presently preferred.




For convenient space-saving connection to data bus


54


, the computer mother board portions of general purpose computer


14


and real-time computer subsystem


16


are data bus cards. As used herein, the term “bus card” is a reference to printed circuit boards with electronic components and a tab with a plurality of contacts that is received in the card slots of a data bus chassis. The DSP real-time computers available from Delta Tau Data Systems, Inc. noted above are available as ISA data bus cards.




In a preferred embodiment, control system


10


includes a security (or “watchdog”) communication (blocks


22


and


40


) between general purpose computer


14


and real-time computer subsystem


16


. Flowchart

FIG. 2

shows the preferred code segments for maintaining the watchdog management. As illustrated, a preferred watchdog scheme includes code segments operating in both general purpose computer


14


and real-time computer subsystem


16


. Resident in general purpose computer


14


is a status code segment


56


and resident in the real-time computer subsystem are a timer code segment


58


, a timer reset code segment


60


, and a fail safe code segment


62


.




The code segments interact with two software variables: an activity software switch (ASW)


64


for indicating whether programs in general purpose computer


14


are active and/or error free, and a timer variable (TV)


66


for storing an elapsed time indication. Timer variable


66


is resident in real-time computer subsystem


16


while activity software switch (ASW)


64


is shared via data bus


54


or other means. Activity software switch


64


is implemented as an integer software variable with an unset position being represented by zero and a set, or active position, being represented by one.




Status code segment


56


optionally, but preferably, runs sequentially with program execution module


18


(box


68


) and repeatedly sets activity software switch


64


to the active position (box


74


). After the completion of a run cycle of program execution module


18


, status code segment


56


examines other software variables which indicate special errors (box


70


) or delays in the processing of other programs (box


72


) in the general purpose computer


14


. Accordingly, if program execution module


18


is interrupted or if errors or other delays are detected, activity switch


64


is not set.




Timer code segment


58


counts down timer variable


66


according to elapsing time. Timer code segment


58


is preferably a system service function of real-time computer subsystem


16


and expressed in execution cycles.




When the activity software switch is in the active position (box


76


), timer reset code segment


60


repeatedly resets the timer variable to a predetermined amount of time (box


78


; preferably two seconds) and repeatedly sets the activity software switch back to the unset position (box


80


). Fail safe code segment


62


responds to an overrun of timer variable


66


(box


82


) by shutting down robot


4


via activation signals


50


/


52


and other robot I/O.




Acting together, code segments


56


,


58


,


60


and


62


, provide a watchdog service which will shut down robot


4


if the operation of general purpose computer


14


is stopped or delayed for more than two seconds.




Referring back to

FIG. 1

, another feature of the present invention is that the software provided for general purpose computer


14


is suitable for controlling robots of various electromechanical configurations. According to this aspect of the invention, general purpose computer


14


serves as a robot-independent computer unit while real-time computer subsystem


16


serves as a somewhat robot-specific controller unit, or customized interface or adapter to the robot.




Important to the multi-configuration aspect of the present invention is the enhanced versatility of operator interface module


20


. Viewed together,

FIGS. 3 and 4

demonstrate the challenge of working with robots of different electromechanical configurations.

FIG. 3

is side view of articulating robot


4


from

FIG. 1

in slightly larger scale to reveal greater detail. The arms of robot


4


are connected by a series of revolute (or rotary) joints


5


,


6


,


7


and


8


. In contrast,

FIG. 4

is side view of a robot


86


which is equipped with a revolute, torso joint


87


and two linear joints


88


and


89


.




Assigning joint numbers from the base up, the second and third joints of robot


4


are of a different type than the second and third joints of robot


86


. To overcome this difference in configuration, the operator interface of the present invention includes a configuration variable for storing data specifying the electromechanical configuration of the robot and display generating code segments for each type of configuration.




In a preferred embodiment, the configuration variable is defined and/or sized to store data defining the type of robot joint, linear or revolute, and whether a specified revolute joint is windable, i.e. capable of turning more than 360 degrees.





FIGS. 5 through 7

provide an example of how operator interface module


20


(

FIG. 1

) uses the configuration variable to accommodate different types of robots. As illustrated in

FIG. 5

, a display selecting code segment


90


responds to an operator request to set limits for joint/axis


3


(box


92


). Code segment


90


checks in configuration variable


94


for data specifying whether joint


3


is linear or revolute (box


96


).




Depending upon whether the third joint of the robot to be controlled is revolute as with robot


4


or linear as with robot


86


, code segment


90


selects one of two available displays for setting joint limits. For a revolute joint type, box


98


is selected and the revolute joint/axis display of

FIG. 6

is generated at screen


28


. For a linear joint type, box


100


is selected and the linear joint/axis display of

FIG. 7

is generated.




Operator interface module


20


is one example of the many software processes installed on general purpose computer


14


that preferably rely on settings in an electromechanical configuration variable (i.e. data set) to provide adaptability. An exemplary configuration variable is defined to store specifications for the number of mechanical joints present on the robot or other automation equipment to be controlled, the type for each joint (e.g. linear), the distance between respective mechanical joints and the range of motion for each joint.





FIG. 8

illustrates a control system


110


according to the present invention applied to laboratory automation equipment, and more specifically, a laboratory liquid handling system


104


. Liquid handling system


104


has three linear mechanical joints


105


,


106


and


107


, corresponding servo motors and a pipette end effector


109


. End effector


109


preferably includes an optical detector in the form of a digital camera for providing control system


110


an alignment indicator.




Control system


110


includes a general purpose computer


114


and a real-time computer subsystem


116


. Installed on the general purpose computer are a program execution module


118


, an operator interface module


120


, and watchdog communication code segments


122


.




Program execution module


118


is a software process adapted to processes automation equipment instructions


124


. As noted above in reference to robot control system


10


(FIG.


1


), the instructions


124


are preferably stored as data disk files on general purpose computer


114


or on compatible removable storage media. From equipment instruction programs


124


, program execution module


118


generates move commands


126


for delivery to real-time computer subsystem


116


.




Equipment instructions


124


preferably take the form of operator readable text or flow-chart source code. Execution module


118


translates equipment instructions


124


into move commands


126


. Via operator interface module


120


, program execution module


118


allows equipment operators to start and stop the transfer of move commands


126


to real-time computer subsystem


116


.




Operator interface module


120


is operably linked to an operator display screen


128


, a keyboard and/or mouse


130


, and other standard peripherals as desired. Interface module


120


includes code segments to create operator screens and accept operator inputs. Interface module


120


allows robot instruction files


124


to be loaded from disk and processed by program execution module


118


for controllably moving liquid handling system


104


.




In addition to accepting operator inputs for the loading, starting and stopping of programs


124


, operator interface


120


includes a file editor for use by an operator to generate new instruction files


125


.




General purpose computer


114


is electronically interconnected for data communication with real-time computer subsystem


116


via one of a variety of a standard data buses


154


as described above in reference to control system


10


. A preferred real-time computer for providing subsystem


116


is commercially available from Galil Motion Control (Rocklin, Calif.) under the designation “DMC-18x2.” The DMC-18x2 real-time computers rely on a PCI bus connection to general computer


114


.




Real-time computer subsystem


116


includes a move module


132


, a move command data buffer


134


, kinematic models


136


, servo control algorithms


138


, and watchdog intercommunication code segments


140


. Subsystem


116


also includes I/O hardware and software drivers to provide an operable link to the positioning related electronics of liquid handling system


104


. Represented by block


142


are the hardware and software components necessary for receiving and translating liquid handling system feedback signals


144


into computer data feedback signals


146


. Block


148


represents the components necessary for converting computer data setpoints


150


into actuator-appropriate activation signals


152


.




Laboratory liquid handling system


104


is equipped with a pipette end effector


109


including control valves, a peristalic pump and optionally a flow rate sensor. Block


149


represents the hardware and software interface components for accessing these end effector elements.




Move module


132


accepts move commands


126


and feedback signals


144


/


146


to generate the necessary activation signals


150


/


152


. Move module


132


relies upon kinematic models


136


to translate move commands


126


into required joint positions and then appropriate activation signal setpoints


150


. Move commands


126


may be specified as changes in joint position or as changes in end-effector position.




For example, to process move commands based on the position of pipette


109


, move module


132


includes a kinematic model for calculating the required position of joints


105


,


106


and


109


.




Data buffer


134


is a software variable available to programs in both general purpose computer


114


and real-time computer subsystem


116


for storing multiple move commands


126


generated by program execution module


118


. Data buffer


134


preferably includes capacity to store from 2 to 10, and more preferably from 3 to 4, move commands.




Also contemplated for the present control systems is the operator direction of multiple automation devices via a single general-purpose computer. Referring now to

FIG. 9

, system


210


simultaneously controls both an industrial robot


204


A and a multi-axis milling machine tool


204


B.




As described above in reference to robot


4


and control system


10


(FIG.


1


), robot


204


A is a Cincinnati Milacron 776 robot having a series of revolute mechanical joints, corresponding servo motors and an end effector


209


A. Milling machine tool


204


B is equipped with a series of orthogonally disposed linear mechanical joints with conventional actuators and a cutting tool end effector


209


B.




Each automation device


204


A and


204


B is served by separate real-time computer subsystems


216


A and


216


B, respectively. Real-time subsystem


216


A is customized for control of robot


204


A. Subsystem


216


A includes hardware and software interface components


248


A to transfer activation signal setpoints


250


A to robot


204


A actuators, interface components


242


A to receive and translate position feedback signals


244


A and interface components


245


A for communication with end effector


209


A. Also installed on real-time subsystem


216


A is a move command data buffer


234


A for receiving move commands


226


A from general purpose computer


214


, a move module software process


232


A for translating move commands into activation signal setpoints


250


A and watchdog communication code segments


240


A to shutdown robot


204


A in the event of a fault in general purpose computer


214


.




Subsystem


216


B is customized for control of the relatively less complex milling center


204


B. Subsystem


216


B includes software and hardware components corresponding to those identified for subsystem


216


A, namely, a move data buffer


234


B for storing move commands


226


B, a move module


232


B for processing move commands


226


B into activation signal setpoints


250


B, watchdog code segments


240


B, interface components


248


B for generating activation signals


252


B, interface components


245


B for directing end effector


209


B and interface components


242


B for translating feedback signals


244


B into digital software data


246


B.




It is a feature of the present invention that the interface hardware (e.g.


245


A/B and


248


A/B) and the software modules making up the real-time subsystems can be customized according to the selected automation equipment to be controlled, while the software modules resident on the general purpose computer (e.g. operator interface


220


) can accommodate differing automation devices and their related electromechanical configurations. For example, industrial robot


204


A has at least four revolute mechanical joints and corresponding actuators, while machining center


204


B has a lower number of linear joints. Therefore, milling center subsystem


216


B is customized with relatively less complex interface connections, than the connections required by subsystem


216


A for robot


204


A. Furthermore, the kinematic model present in move module


232


B of subsystem


216


B for machining center


204


B can be relatively less complex than those kinematic models present in move module


232


A of subsystem


216


A.




General purpose computer


214


of control system


210


has an operator interface


220


linked to a display


228


and peripherals


230


, and separate execution modules


218


A and


218


B for each automation device subsystem. Operator interface module


220


generates operator screens and accepts from the operator, prompts and data.




Operator interface module


220


allows the creation and loading of equipment instruction programs, which are represented in

FIG. 9

with reference numerals


224


A,


224


B and


224


C. More specifically,


224


A represents files with instructions solely for robot


204


A,


224


B represents files with instructions solely for milling center


204


B,


204


C represents files containing instructions for both robot


204


A and milling center


204


B.





FIG. 9

represents a single operator interface module


220


for directing the activities of both automation devices, robot


204


A and milling center


204


B. In an alternate embodiment, general purpose computer


214


includes a separate operator interface module for each automation device.




Execution module


218


A processes programs of instructions for robot


204


A and stores corresponding move commands


226


A in data buffer


234


A. Execution module


218


B translates instruction programs


224


for milling center


204


B storing resulting move commands


226


B to data buffer


234


B.




In an alternate embodiment, control system


210


relies on a single execution module to translate instructions for multiple automation devices and selectively forward move commands


226


A or


226


B to the appropriate subsystem.




Although represented in

FIG. 9

as two separate blocks


222


A and


222


B, the watch dog intercommunication function between general purpose computer


214


and each real-time subsystem


216


A and


216


B preferably relies on the same operating code segments. The watchdog code segments in general purpose computer


214


set separate activity software switches for each subsystem


216


A and


216


B. If one or more critical software processes fail to execute, neither the activity software switch for subsystem


216


A nor the activity software switch for subsystem


216


B will be set to active. As described above in reference to

FIG. 2

, if the activity software switches are not set to active in a timely manner, the watchdog code segments


240


A and


240


B operating in each real-time subsystem will shut down their respective automation devices.




A key feature of the present invention is the watchdog intercommunication between the general purpose computer and the real-time computer subsystem.

FIG. 10

illustrates a preferred embodiment of the watchdog intercommunication feature applied individually to multiple software processes of control system


10


.




Control system


10


includes multiple software processes, some of which are critical to the control function such as execution module


18


and operator interface


20


. According to a preferred approach to the watchdog feature, control system


10


includes an activity software switch for each critical process. For example, execution module


18


has an activity software switch


19


(ASW


1


) and operator interface module


20


has an activity software switch


21


(ASW


2


). A separate high-priority, status review process


27


polls the plurality of activity software switches, ASW


1


. . . ASWn, and sets a main activity software switch


64


(ASW) only if all of the individual process activity switches are active.




Each critical software process has code segments for setting the assigned activity software switch to active. For example, execution module


18


includes code segment


31


. This activity code segment is preferably at the end of the execution sequence. If a critical process fails to fully execute, the activity software switch is not set and subsystem


16


fails safe to shutdown robot


4


.




Timer reset code segment


60


in real-time subsystem


16


continually resets timer variable


66


when main software activity switch


64


is set to the active position. A system-service timer code segment


58


(

FIG. 2

) continually increments timer variable


66


according to elapsed time. Timer variable


66


therefore serves as a measure of elapsed time since software processes of general purpose computer reported activity. Fail safe code segment


62


monitors timer variable


66


and shuts down robot


4


if the elapsed time of inactivity exceeds a predetermined safety limit.




The foregoing specification and drawings are to be taken as illustrative but not limiting of the present invention. Still other configurations and embodiments utilizing the spirit and scope of the present invention are possible, and will readily present themselves to those skilled in the art.



Claims
  • 1. A control system for processing a program of instructions for automation equipment having a mechanical joint, a mechanical actuator to move the joint and a position feedback sensor, the mechanical actuator for receiving an activation signal and the feedback sensor providing a position signal, the control system comprising:a general purpose computer with a general purpose operating system, said general purpose computer including a program execution module to selectively start and stop processing of the program of instructions and to generate a plurality of move commands; and a real-time computer subsystem in electronic communication with said general purpose computer and operably linked to the mechanical actuator and the position feedback sensor, said real-time computer subsystem including a move command data buffer for storing said plurality of move commands, a move module linked to said data buffer to sequentially process said plurality of move commands and calculate a required position for the mechanical joint.
  • 2. The control system according to claim 1 wherein said real-time computer subsystem also includes a control algorithm in software communication with said move module to repeatedly calculate a required activation signal from the feedback signal and said required position for the mechanical joint.
  • 3. The control system according to claim 1 wherein the mechanical actuator is a servo motor and said control algorithm is a servo control algorithm.
  • 4. The control system according to claim 1 wherein the position feedback sensor is an optical detector.
  • 5. The control system according to claim 1 wherein said optical detector is a digital camera.
  • 6. The control system according to claim 1 further comprising a watchdog intercommunication between said real-time computer subsystem and said general purpose computer for detecting faults in the operation of said general purpose computer.
  • 7. The control system according to claim 1 wherein said general purpose operating system is not tied to real-time.
  • 8. The control system according to claim 1 wherein said general purpose operating system is a member of the group consisting of a Windows XP®, a Windows-NT®, a Windows 2000®, a Windows 95®, a Windows 98®, an Open VMS®, a PC/MS DOS, and a Unix.
  • 9. A control system suitable for controlling automation equipment of different electromechanical configurations, the control system comprising:an equipment-independent computer unit including a video display and a first digital processor for running an operator interface module for creating a move command; and an equipment-specific controller unit operably linked to the automation equipment including a second digital processor adapted to run a real-time tied operating system and a move module for executing said move command, said equipment-specific controller unit being in electronic communication with said equipment-independent computer unit.
  • 10. The control system according to claim 9 wherein said equipment-independent computer unit and said equipment-specific controller unit are electronically linked via a standard data bus.
  • 11. A control system suitable for controlling automation equipment of different electromechanical configurations, the control system comprising:an equipment-independent computer unit including a video display and a first digital processor for running an operator interface module for creating a move command; and an equipment-specific controller unit operably linked to the automation equipment including a move module for executing said move command, said equipment-specific controller unit being in electronic communication with said equipment-independent computer unit wherein said equipment-independent computer unit and said equipment-specific controller unit are electronically linked via a data bus selected from the group consisting of an ISA bus, a PCI bus, a VME bus, a universal-serial-bus (USB) and an Ethernet connection.
  • 12. A control system suitable for controlling automation equipment of different electromechanical configurations, the control system comprising:an equipment-independent computer unit including a video display and a first digital processor for running an operator interface module for creating a move command; an equipment-specific controller unit operably linked to the automation equipment including a move module for executing said move command, said equipment-specific controller unit being in electronic communication with said equipment-independent computer unit; a configuration variable for storing data specifying the electromechanical configuration of the automation equipment; a first code segment for generating a first operator display according to a first electromechanical configuration; a second code segment for generating a second operator display according to a second electromechanical configuration; and a third code segment for selecting said first or second code segment according to said electromechanical configuration.
  • 13. The control system of claim 12 wherein said configuration variable is defined to store data specifying the distance between two mechanical joints present on the automation equipment.
  • 14. The control system of claim 12 wherein said configuration variable is defined to store data specifying the number of mechanical joints of the automation equipment.
  • 15. An operator interface module for controlling automation equipment of different electromechanical configurations, the operator interface module comprising:a first code segment for generating a first operator display according to a first electromechanical configuration; a second code segment for generating a second operator display according to a second electromechanical configuration; and a third segment for selecting said first or second code segment according to said electromechanical configuration.
  • 16. The operator interface according to claim 15 wherein said second code segment generates an operator display requesting operating limits for a linear joint.
  • 17. The operator interface module of claim 15 wherein said configuration variable is defined to store data specifying a mechanical joint type.
  • 18. A control system suitable for controlling a plurality of automation devices, each device having a mechanical joint and a mechanical actuator to move the joint, the control system comprising:a general purpose computer with a general purpose operating system, the general purpose computer including a video display and a first digital processor for running an operator interface module; and a plurality of real-time computer subsystems each in electronic communication with said general purpose computer and each operably linked to one of said automation devices, each subsystem including a digital processor for running a real-time tied operating system and a move module for executing move commands.
  • 19. The control system of claim 18 for controlling an industrial robot and a machine tool.
  • 20. The control system according to claim 18 further comprising a watchdog intercommunication between at least one of said plurality of real-time computer subsystems and said general purpose computer for detecting faults in operation of said general purpose computer.
  • 21. The control system according to claim 18 wherein at least one of said plurality of subsystems includes a move command data buffer for storing said plurality of move commands, a move module linked to said data buffer to sequentially process said plurality of move commands and calculate a target position for the mechanical joint, and a control algorithm in software communication with said move module to calculate a required activation signal from said target position for the mechanical joint.
  • 22. An automated manipulation system for executing a program of instructions, the system comprising:a manipulator having a mechanical joint, an actuator to move said joint and a position sensor, said actuator for receiving an activation signal and said position sensor providing a position signal, a general purpose computer with a general purpose operating system, said general purpose computer including a program execution module to selectively start and stop processing of the program of instructions and to generate a plurality of move commands; and a real-time computer subsystem in electronic communication with said general purpose computer and operably linked to the mechanical actuator and the position sensor, the real-time computer subsystem including a move command data buffer for storing said plurality of move commands, a move module linked to said data buffer to sequentially process said plurality of move commands and calculate a required position for the mechanical joint.
  • 23. The system according to claim 22 wherein the manipulator is a laboratory automation device.
  • 24. The system according to claim 23 wherein the laboratory automation device is a liquid handling system.
  • 25. The system according to claim 22 wherein the manipulator is an articulating industrial robot.
  • 26. A control system for automation equipment having a mechanical joint, a mechanical actuator to move the joint, the mechanical actuator for receiving an activation signal, the control system comprising:a general purpose computer with a general purpose operating system for providing an operator interface, said general purpose computer including a plurality of software processes; a real-time computer subsystem in electronic communication with said general purpose computer and operably linked to the mechanical actuator, the real-time computer subsystem including a code segment algorithm for resetting said activation signal; and a watchdog intercommunication between said real-time computer subsystem and said general purpose computer for detecting faults in operation of said general purpose computer.
  • 27. A control system for automation equipment having a mechanical joint, a mechanical actuator to move the joint, the mechanical actuator for receiving an activation signal, the control system comprising:a general purpose computer with a general purpose operating system for providing an operator interface, said general purpose computer including a plurality of software processes; a real-time computer subsystem in electronic communication with said general purpose computer and operably linked to the mechanical actuator; and a watchdog intercommunication between said real-time computer subsystem and at least two of said plurality of software processes for detecting interruption of the execution of said software processes.
  • 28. The control system according to claim 27 wherein said watchdog intercommunication includes:a plurality of activity software switches each having an active position and an unset position; a status code segment in each of said plurality of software process for repeatedly setting a predetermined one of said activity software switches to said active position; a timer variable for storing an elapsed time indication; a timer code segment for adjusting said timer variable according to passing time; a timer reset code segment installed in said real-time computer subsystem for repeatedly resetting said timer variable to a predetermined amount of time when all of said plurality of activity software switches are in said active position and repeatedly resetting said plurality of activity software switches to said unset position; and a fail safe code segment installed in said real-time computer subsystem for repeatedly inspecting said timer variable and setting said activation signal to shut down the robot if said timer variable reaches a predetermined value.
  • 29. A control system for processing a program of robot instructions for robots having a mechanical joint, a mechanical actuator to move the joint and a position feedback sensor, the control system comprising:a general purpose computer with a general purpose operating system, said general purpose computer including a program execution module to selectively start and stop processing of the program of robot instructions and to generate a plurality of robot move commands; and a real-time computer subsystem in electronic communication with said general purpose computer and operably linked to the mechanical actuator and the position feedback sensor, the real-time computer subsystem including a move command data buffer for storing said plurality of move commands, a robot move module linked to said data buffer to sequentially process said plurality of move commands and calculate a required position for the mechanical joint.
  • 30. The control system according to claim 29 wherein the position feedback sensor is an optical detector.
  • 31. The control system according to claim 29 wherein said optical detector is a digital camera.
  • 32. A control system for processing a program of robot instructions for robots having a mechanical joint, a mechanical actuator to move the joint and a position feedback sensor, the control system comprising:a general purpose computer with a general purpose operating system, said general purpose computer including a program execution module to selectively start and stop processing of the program of robot instructions; and a real-time computer subsystem in electronic communication with said general purpose computer and operably linked to the mechanical actuator and the position feedback sensor, the real-time computer subsystem including a move module to calculate required positions for the mechanical joint.
  • 33. The control system according to claim 32 further comprising a watchdog intercommunication between said real-time computer subsystem and said general purpose computer for detecting faults in operation of said general purpose computer.
CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation-in-part of U.S. Ser. No. 09/750,433, filed on Dec. 28, 2000, now U.S. Pat. No. 6,442,451.

US Referenced Citations (6)
Number Name Date Kind
4586151 Buote Apr 1986 A
4730258 Takeda et al. Mar 1988 A
5038089 Szakaly Aug 1991 A
6219032 Rosenberg et al. Apr 2001 B1
6324581 Xu et al. Nov 2001 B1
6442451 Lapham Aug 2002 B1
Continuation in Parts (1)
Number Date Country
Parent 09/750433 Dec 2000 US
Child 10/227660 US