Abstract:
An improved gripper for attachment to a robot arm. The gripper system is a stand alone unit with its own controller and has a pair of fingers, both of which are movable in opposite directions. The controller is programmed to direct the operation of the gripper system in response to system input signals. The fingers are controlled by a mechanism for moving the fingers simultaneously in opposite directions with the driving power being supplied by a motor. Feedback from the motor or moving mechanism is provided to a servo mechanism which provides a power signal to the motor through an intermediate amplifier. The servo system compares an input signal from the controller to the feedback signal and causes the motor to move in an appropriate direction.

Description:
The appendix contains a listing of a computer program implementing the flow chart of FIG. 7. 
     This invention relates to improvements in the capability of robotic systems and, more particularly, to an improved gripper assembly having position-controlled finger mounts for gripping components of different types and sizes. 
     BACKGROUND OF THE INVENTION 
     Robots which are used to move and manipulate parts are typically comprised of a robotic arm having a gripper at the end thereof. The robotic arm is typically moved to position the gripper around the object to be grasped, and the gripper is then activated to grasp the object and hold it during movement of the robotic arm. Typically, such grippers are pneumatic. The gripper will typically have a full open position and will close with a constant amount of force upon the application of air pressure. Such pneumatic systems are usually limited in the amount of travel of the gripper fingers, with one inch being average. The gripper would close until the two fingers touch each other except for the intermediate contact with the object to be moved. 
     In a gripper previously sold by applicant, the gripper has a stationary finger and a moveable finger. The movable finger is controlled by a DC motor to position the finger as desired. An encoder on the shaft of the DC motor provides a feedback signal to a servo system which controls power to the DC motor. The system includes a serial port for providing assembly level commands to the servo system. The commands can be provided to the servo system of the gripper by the computer system controlling the robotic arm. The servo system output is coupled to the DC motor power supply through a linear analog amplifier. The motor is coupled to control the movable finger through a rack and pinion in one model or a ball screw and rack in another model. 
     SUMMARY OF THE INVENTION 
     The present invention is an improved gripper for attachment to a robot arm. The gripper system is a stand alone unit with its own controller and has a pair of fingers, both of which are movable in opposite directions. The controller is programmed to direct the operation of the gripper system in response to system input signals. The fingers are controlled by a mechanism for moving the fingers simultaneously in opposite directions with the driving power being supplied by a motor. Feedback from the motor or moving mechanism is provided to a servo mechanism which provides a power signal to the motor through an intermediate amplifier. The servo system compares an input signal from the controller to the feedback signal and causes the motor to move in an appropriate direction. 
     The two moving fingers of the gripper of the present invention provide increased flexibility for a robotic system. The controller allows the gripper unit to be a turn key device which can be controlled simply through menu driven software on an associated terminal or other input means. 
     Two embodiments are shown for simultaneously moving both fingers in opposite directions. In a first embodiment, a pinion is coupled to the drive shaft of the motor and mounted between two racks. The pinion causes the racks to move in opposite directions, with one rack being coupled to a first finger and the other rack being coupled to a second finger. 
     In a second embodiment, a drive shaft coupled to the motor has a ball screw mounted on it which is connected to a first rack coupled to a first finger. The first rack is coupled through an intermediate pinion to a second rack which is coupled to the second finger. Thus, movement in opposite directions is generated through the combination of a ball screw and rack and pinion arrangement. 
     The gripper system can be operated either via a terminal or a remote control box. The remote box can be carried by an operator to a position adjacent the gripper for teaching the gripper the size of a component to be moved. Control of the system is transferred to the remote control by the movement of a switch on the box. The operator can then use other switches to directly move the gripper fingers in one direction or the other or can use a switch to disconnect the motor so that the operator can manually move the fingers to the desired position for gripping the part. The operator physically pushes the fingers to the desired position and then hits a return button on a terminal to store the position. 
     In the preferred embodiment, the feedback mechanism is an encoder coupled to the motor drive shaft This encoder provides a square wave proportional to the position of the drive shaft. The square wave is provided as an input to the servo system which compares the position represented by the square wave to a desired position input by the controller. The servo system an analog output to a pulse width modulated pWM amplifier. The PWN amplifier converts the analog servo signal into digital form for performing pulse width modulation of an output signal. The output signal is filtered to give an analog output which is provided to the DC motor. 
     Different sizes and shapes of parts can be taught to the gripper using the remote control box. The operator first inputs a part number into the system and then uses the remote control box to position the gripper fingers on the object with the proper amount of force. Then, by simply hitting the return button on a terminal, the system will store the desired gripping position in association with the designated part number. The gripper position itself includes a force component since a greater force will translate into a slightly different position of the gripper fingers. Thereafter, in a run mode, the gripper will move to a position it has been &#34;taught&#34; when the designated part number is specified. The speed of movement of the fingers can be separately programmed to vary the time for which the gripping force is applied to the object to be moved. 
     The present invention thus provides an improved gripper system with increased flexibility and capabilities. The system can also be used to verify the proper size of an object to be moved by comparing the position in which the fingers stop (indicating contact with the object) with the desired position of the gripper arms. 
     Other objects of this invention will become apparent as the following specification progresses, and with reference to the accompanying drawings for an illustration of several embodiments of the invention. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a perspective view of the robotic system of the present invention, showing the way in which the system can be used, for instance an application of placing a component on the board in a specific location on a circuit board; 
     FIG. 2 is a front elevational view of one embodiment of the servo gripper of the present invention, the gripper being partially broken away to illustrate details of construction; 
     FIG. 3 is a vertical section looking in the direction of one and of the servo gripper of FIG. 2; 
     FIG. 4 is a view similar to FIG. 2 but illustrating a second embodiment of the servo gripper of the present invention; 
     FIG. 5 is a view similar to FIG. 3 but showing the second embodiment of the servo gripper; 
     FIG. 6 is a block diagram of the robotic system of the present invention; 
     FIG. 7 is a flow chart, showing the functions of the robotic system of the present invention; 
     FIG. 7A is a flow chart of the teach subroutine of FIG. 7; and 
     FIG. 7B is a flow chart of the run subroutine of FIG. 7. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The robotic system of the present invention is broadly denoted by the numeral 10 and includes a first embodiment of a servo gripper 12 coupled with a controller 14 operated by a remote control means 16 having a number of operating devices, such as switches, thereon. The servo gripper includes a pair of spaced fingers 18 which are driven laterally by the mechanism of gripper 12 so as to perform a certain function, such as to grip and lift a component 20 at one location and move it to a second location, such as at a specific location 22 on a circuit board 24 positioned on a surface, such as a table top or the like. Gripper 12 is coupled to a robot arm 13 and is moved about by the arm 13 under the influence of control means (not shown) for arm 13. Controller 14 is typically mounted with the controls for the rest of the robotic system. 
     Gripper 12 may have a programmable gripping force exerted by fingers 18 so as not to damage the component 20, yet the force will be sufficient to retain the component clamped by the fingers while the component is being moved from one place to another. Moreover, gripper 12 can be programmed to grip and carry a component of any size within a predetermined range. Such components can be of any desired configuration, such as rectangular or circular. 
     A first embodiment of servo gripper 12, using a rack and pinion arrangement is shown in FIGS. 2 and 3. The gripper 12 is enclosed in a housing 26 which includes a top plate 28 and a side cover 30 which can be opened to gain access to the interior of housing 26. 
     Within housing 26 is a DC motor 32 on which is mounted an encoder 34, the encoder being responsive to and coupled to one end of the drive shaft of the motor. For purposes of illustration, the motor drive shaft is vertical. The opposite end 36 of the drive shaft of motor 32 extends downward from the motor and is secured to a shaft coupling 38 having a lower stub shaft 40 which is mounted and rotates in a bearing 42 and having a pinion 44 at the lower end thereof. Bearing 42 is carried by a pair of legs 45 forming a part of the overall support defined by housing 26, the legs 45 being spaced above a pair of gear racks 46 which are in mesh with and responsive to pinion 44. 
     A linear bearing 50 allows one-dimensional linear motion of gear racks 46 on a bottom plate 52 forming a part of housing 26 so that the gear racks can move in opposite directions with respect to each other in response to the rotation of pinion 44 under the influence of motor 32. A pair of finger mounts 54 are coupled with respective gear racks 46. Fingers 18 are secured to respective mounts 54 as shown in FIG. 2. 
     When the motor is energized to rotate its shaft in one direction, the pinion 44 rotates to cause movements of the racks 46 in directions to open or move fingers 18 apart. When the shaft of the motor is rotated in the opposite sense, the racks are moved in directions toward each other so as to move fingers 18 toward each other. The encoder 34 senses the rotation of the motor drive shaft and thereby provides the information necessary to position the fingers and set the proper force on the component 20 (FIG. 1) by fingers 18 when it is desired to lift the component and move it to another location, such as locations 22 on board 24. 
     A second embodiment of the servo gripper of the present invention using a ball screw in combination with a rack and pinion arrangement is denoted by the numeral 60 and is shown in FIGS. 4 and 5. Gripper 60 includes a support housing 62 including a top plate 64 and a side cover 66 which is removable to gain access to the interior of the gripper when desired. 
     A DC servo motor 68 is mounted by a plate 69 in housing 62 in the manner such that its drive shaft 70 is, for purposes of illustration, generally horizontal. The drive shaft 70 is coupled at one end thereof to an encoder 72 and at the opposite end to a timing pulley 74 coupled by a timing belt 76 to a second timing pulley 78 coupled to a shaft 80 journaled in plate 69 and bearing 83. A ball screw 82 is mounted on shaft 80 for linear movement along the shaft. 
     The ball screw is coupled to a gear rack 84, which in turn is coupled to a pinion 86 secured to a vertical shaft 87 rotatably mounted on a fixed part of the support housing. A second gear rack 88 is in mesh with pinion 86 and is mounted for horizontal, linear movement with respect to housing 62. A linear bearing 90 couples gear racks 84 and 88 to support housing 62 so that, as the motor drive shaft 70 rotates, it causes movements of the gear racks 84 and 88 in opposite directions with respect to each other. Finger mounts 92 are coupled to respective gear racks 84 and 88 so that fingers, such as fingers 18, secured to mounts 92 will move toward and away from each other depending upon the direction of movement of the drive shaft 70 of servo motor 68. 
     As shown in FIG. 6, controller 14 includes a CPU board 100 coupled to a servo board 102. An input/output rack 104 is coupled by line 106 to the CPU board, there being a group 108 of input and output lines coupled by line 110 to the input/output line of rack 104. 
     A serial interface 112 is coupled by a line 114 to a terminal 116. A power amplifier 118 is coupled by a line 120 to servo board 102 and by a line 122 to a gripper interface 124 whose output line 126 supplies gripper power to gripper 12 or to gripper 60, whichever is used. A line 128 carries encoder signals from encoder 34 or encoder 72 to gripper interface 124 which, in turn, directs such signal over a line 130 to servo board 102. A remote control box 134 is coupled by a line 136 to a pendant interface 138 which, in turn, is coupled by a line 140 to CPU board 100 and by a line 142 to input/output rack 104. 
     CPU board 100 contains an Intel 8052 microprocessor, 8K of random access memory (RAM), 8K of programmable read only memory (PROM) and an input/output interface. The PROM contains the program for the gripper system. CPU board 100 can receive inputs from two sources, serial interface 112 or I/O rack 104. I/O rack 104 consists of a series of optically isolated interface buffers for coupling to input and output lines 108 which can be coupled to the main robot controller, a host computer, or a host programmable logic controller (PLC). 
     CPU board 100 controls servo board 102 which is preferably a DMC 3000 -10 chip set produced by Galil. The servo board receives the encoder signals in the form of a square wave pulse from gripper 112 through line 128 and a connector 120 on a line 130. This square wave pulse is compared with an input from CPU board 100 and an analog output is provided on line 120 to a pulse width modulated amplifier 118. PWM amplifier 118 is preferably a model 201 amplifier from Complex Controls. The output of the amplifiers is provided on line 122 through gripper interface connector 124 to a motor power line 126. 
     Remote control box 134 includes a first switch 131 for designating either pendant (remote control box) operation or controller operation. The controller operation position provides inputs to CPU board 100 through either serial interface 112 or parallel I/O rack 104. The pendant position puts CPU board 100 under the control of remote control box 134. A second switch 133 designates whether the gripper is to be operated in the free or servo mode. In the free mode, the signal from remote control box 134 causes CPU board 100 to remove power from the gripper motor so that an operator can manually move fingers 18 to a desired position. In the servo mode, the movement of the fingers is controlled by control box 134. 
     If the servo mode is selected, the operator will indicate the direction in which the fingers are to move with a switch 135. If the open position is chosen, the fingers will move away from each other, if the closed position is chosen, the fingers will move towards each other. The speed at which the fingers move is controlled by a dial 137 which the operator can manipulate to vary the speed at which the fingers move. A hold button 139 is provided as a fail safe to stop the movement of fingers 18. 
     FIG. 7 shows a flow chart illustrating the operation of the system 10 when serving to grip, lift and move components, such as component 20, in the manner shown in FIG. 1. 
     Four subroutines A-E, are shown in FIG. 7. Subroutine A is the calibration subroutine in which the controller instructs the motor to move so that the fingers close to determine the zero position. The position of the encoder at this closed position is then noted to provide the zero calibration. 
     In subroutine B, a list of parts to be manipulated by the gripper is input by an operator via terminal 116 of FIG. 6 or is down loaded from a computer system through input lines 108. 
     Teach subroutine C and run subroutine D relate to teaching the system how to manipulate a part and subsequently manipulating that part, respectively. The details of these subroutines are shown in FIGS. 7A and 7B, respectively. Subroutine E allows the system to be controlled by a menu driven software on terminal 116 or directly with commands the I/O lines 108. 
     In the teach subroutine as shown in FIG. 7A, the controller first determines whether the free/servo switch is in the free or servo position (step F). If the switch is in the free position, a control signal is sent to stop the operation of the motor (step G). The system is then monitored to detect a toggling of the servo switch (step H) at which time the input from the encoder is read (step I) and the encoder input is stored as the grasping position for a previously designated part number (step J). 
     If the servo mode was selected, the controller then determines whether the open/close switch is in the open or closed position (step K). If the open position is designated, a control signal is sent through servo board 102 to drive the motor in a first direction (step L). If the switch is in the closed position, a different control signal is provided to servo board 102 to direct the motor to move in an opposite direction (step M). The input speed from control knob 137 is then read (step). A control signal is then sent through the servo board 102 to the motor to operate the motor at the designated speed (step O). If the speed is zero (step 2), the controller monitors for a return button on the terminal being hit (step P). If the return key has been hit, the encoder is read and its value is stored as the position for the designated part number (steps I and J). 
     Once the system has been taught a particular part, it can be run using the subroutine of FIG. 7B. A part number is first input (step Q) and the encoder is read to determine the current gripper position (step R). The current position is compared to the position stored in memory for the designated part number (step S) and the determination is made whether the current position is greater than or less than the desired position (step T). If the current position is greater, a first control signal is sent through servo board 102 to the motor to move the motor in a first direction (step U). If the current position is smaller than the desired position, a second control signal is sent through servo board 102 to move the motor in the opposite direction (step B). The controller then specifies a motor speed to servo board 102 in accordance with a speed designated by a previous input for the designated part number or a default speed (step W). The encoder is monitored (step X), and the motor is operated at the designated speed until the encoder position equals the designated position (step Y). 
     The subroutine of FIG. 7B can be varied in a number of respects. For instance, the encoder position may never reach the designated position in step Y if the part is out of tolerance. Thus, the controller can end the subroutine if no change in the encoder signal is detected for a certain amount of time, indicating that the fingers have contacted the part even though the desired position has not been reached. This position can then be compared to the designated position and an out of tolerance signal generated to terminal 116 if the difference is greater than a predetermined amount. 
     SYSTEM OPERATION 
     To operate system 10, terminal 116 with RS232 serial port is set for 8-bit data, one stop bit, no parity, and any baud rate from 110 to 9,600. Cable 114 (FIG. 6) connects serial port 112 to terminal 116. Also necessary for operation is a power source of 115 volts, 60 Hz at 2 amps. 
     When powering the system, the screen of terminal 116 will be blank. The controller 14 requires several seconds to boot up. After waiting seven to eight seconds, the SPACE key of the terminal is pressed to initialize the serial port on the controller to match it to the baud rate of the terminal. After the SPACE key has been pressed, the screen will display &#34;sys int&#34;. For the next several seconds, the system will be loading all of the stored data. Pressing the return key will be bring the Main Menu onto the screen. 
     The controller for either gripper 12 or gripper 16 has a menu-driven operating system. Each time the system is powered up or when returning from another part of the system, the Main Menu screen is displayed on the terminal 116. The Main Menu provides several fields from which to choose from namely calibrate, parts list, teach, run and exit as indicated by boxes A, B, C, D and E of FIG. 7. The exit field functions only when the optional command software module is installed in the controller 14. To call up the field of the Main Menu, it is necessary to enter the corresponding number of the field and then to press the return key of the terminal. Unless the gripper is calibrated, it is not possible to enter the teach mode. 
     In the calibrate mode, fingers 18 are calibrated to their closed positions. The fingers first open all of the way to the ends of their paths of travel. Then the fingers close on center. With the fingers together, they define the calibrated or &#34;home&#34; position. When the calibration has been completed, controller 14 then returns to the main menu screen (except during the run mode). 
     The parts list mode displays all of the information pertaining to the taught parts of the gripper. It is possible to teach the gripper a total of about 32 parts listed on two separate screens, 16 parts per screen. The data listed for each part includes the part number, the part grip (ID or OD) part clearance, grip force in the top part widths. After the first 15 parts have been displayed, controller 14 waits for the input to continue. Pressing the return key will display the second set of 16 parts. Pressing the return key of the terminal a second time returns the system to the Main Menu screen. 
     In the teach mode, information relating to each part is entered into the system and the part is taught to the gripper. Up to 32 different parts can be stored in nonvolatile memory. After selecting teach from the Main Menu, the system asks for input on the part that is to be taught to the gripper. 
     The first question to be taught relates to the part number. The part can be any number from 0 to 31. A negative number will exit the system back to the Main Menu screen. 
     The second question asks if the grip is ID (inside diameter) or OD (outside diameter). An ID grip means that the fingers approach the part from the inside position and move outwardly to grasp the part. An OD grip means that the fingers approach apart from the outside positions and move inwardly to grasp the part. 
     The third question asks for clearance on the part. The part clearance is a total additional offset the fingers travel to clear the part when the gripper is approaching or departing the part&#39;s location. When the grip is ID, the part clearance is subtracted from the finger opening. When the grip is OD, the part clearances added to the finger opening. 
     The fourth question asks for the grip force. This is a level of force for the fingers during the move and while holding the part. The grip force values can range from 0 to 100 with 100 being the maximum force. This programmable grip force allows for handling of delicate parts along with heavier objects with the same gripper. 
     After all required information pertaining to a particular part has been entered into the system, the system will then list all of the data and ask if the data is correct. If the answer is no, the system will start over again with the first question. If the answer is yes, the part will be taught to the gripper. With the remote pendant interface 138 (FIG. 6), it is possible to teach the part one of two ways either by jogging the fingers or by freeing them. 
     When jogging the fingers there are two speeds i which one can select, slow or very slow. The fingers are first moved to clear the part and the part is placed in the way of the fingers to be grasped. When this is done, the fingers are driven to grasp the part, making sure that the part is positioned correctly and being held tightly. 
     It is also possible to teach the part by pressing the free switch on the pendant. This action turns the servo motor off and allows the fingers to move freely throughout their travel. With the fingers limp, the part being taught is placed between the fingers. The fingers are pressed tightly to hold the part then the switch is toggled back to servo on the pendant The gripper will servo to that position. 
     If the remote pendant option is not provided, the fingers will go limp after the instruction on the screen had reached &#34;teach part the gripper&#34;. The instructions stated previously, use the Free/Servo function on the pendant. After the fingers on the part have been closed the return key is pressed on the terminal. The fingers will now servo at that location. 
     After the fingers have been moved to grasp the part, the return key on the terminal is pressed. This stores the fingers location along with all the related data in the nonvolatile memory. 
     The next question relates to whether or not another part is to be taught. A &#34;no&#34; answer will exit the system from the teach mode and return it to the Main Menu screen. A &#34;yes&#34; answer will return the system to the first question at the beginning of the teach mode. 
     When selecting the run mode, the controller switches from the menu-driven operator interface to the digital I/O interface with the host system (robot controller). A message will appear on the terminal screens, stating that the controller is in the run mode. In this mode, the controller will accept only inputs from the digital I/O. To exit from the run mode, it is necessary to toggle the run/terminal signal bit to terminal along with setting the abort bit. The system will then return to the Main Menu screen, an emergency stop will occur, causing the gripper to go limp. The gripper will need to be calibrated to resume operations. 
     To drive the gripper, several bits are needed. Part bit 0, part bit 1, part bid 2, part bit 3 and part bit 4 identify the part number to be used (0 to 31). The open/closed bit calls the offset for the finger positioning. The read bit commands the controller to read all the bits, assign the part number, part grip, part clearance (if open bit it set), grip force, along with part width and to execute the move. When the controller is ready for the next move, the ready bit will be turned on. While the controller is reading the bits and executing the move, the ready bit will be turned off. 
     The abort bit (without the run/terminal bit, set to terminal), will stop all movements of the gripper. The gripper does not go limp and there is no need to recalibrate the gripper. The system then continues to the next read command. It is recommended that the I/O signals be set for 100 millisecond duration. 
     In the exit mode, the system will function only if the optional command the software module is installed. The exit mode allows the system to leave the menu-driven software and drive the gripper directly through assembly like instructions. The command software module functions only through the controllers serial port and ignores all digital I/O inputs. It is possible to enter the commands either through a terminal or a host controller. 
     The system can be set to Autorun in two different modes on power up. With both the run/terminal bits set to run and the calibrated bit set to run and the calibrated set, the system will enter the run mode and calibrate the gripper. It will be ready to accept read commands. 
     With just the run bit set, the system will enter the command software module (if installed). It is possible to then enter commands from either the robot or host system to drive the gripper. The controller does not wait for a space key to determine the band rate. The band rate is fixed at 9,600. It is possible to leave either of these modes and return to the main menu screen at any time. 
     As it will be understood by those familiar with the art, the present invention may be embodied in other specific forms without departing from the spirit or the essential characteristics thereof. For example, the system can be simultaneously accepting inputs of parts in subroutine B and be operated by the remote control box. Accordingly, the disclosure of the preferred embodiments of the invention is intended to be illustrated, but not limiting, of the scope of the invention which set forth in the following claims. ##SPC1##