GB2027938A - Improved off-line teach assist apparatus and on-line control apparatus - Google Patents
Improved off-line teach assist apparatus and on-line control apparatus Download PDFInfo
- Publication number
- GB2027938A GB2027938A GB7913798A GB7913798A GB2027938A GB 2027938 A GB2027938 A GB 2027938A GB 7913798 A GB7913798 A GB 7913798A GB 7913798 A GB7913798 A GB 7913798A GB 2027938 A GB2027938 A GB 2027938A
- Authority
- GB
- United Kingdom
- Prior art keywords
- workpiece
- arm
- manipulator
- signals
- velocity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000033001 locomotion Effects 0.000 claims abstract description 145
- 238000006073 displacement reaction Methods 0.000 claims abstract description 27
- 230000001133 acceleration Effects 0.000 claims description 92
- 238000000034 method Methods 0.000 claims description 79
- 230000003068 static effect Effects 0.000 claims description 33
- 230000008859 change Effects 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 21
- 238000004458 analytical method Methods 0.000 description 47
- 239000013256 coordination polymer Substances 0.000 description 36
- 238000003466 welding Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 30
- 238000004364 calculation method Methods 0.000 description 27
- 239000003550 marker Substances 0.000 description 16
- 239000013598 vector Substances 0.000 description 14
- 238000012546 transfer Methods 0.000 description 11
- GOVKLKKLYMXKNS-ZCSGCDBXSA-N [3-hexadecanoyloxy-2-[7-[2-[4-[3-(trifluoromethyl)diazirin-3-yl]phenyl]-1-tritioethoxy]heptanoyloxy]propyl] 2-(trimethylazaniumyl)ethyl phosphate Chemical compound C1=CC(CC([3H])OCCCCCCC(=O)OC(COC(=O)CCCCCCCCCCCCCCC)COP([O-])(=O)OCC[N+](C)(C)C)=CC=C1C1(C(F)(F)F)N=N1 GOVKLKKLYMXKNS-ZCSGCDBXSA-N 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 239000002131 composite material Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 101000933173 Homo sapiens Pro-cathepsin H Proteins 0.000 description 3
- 102100025974 Pro-cathepsin H Human genes 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 201000008103 leukocyte adhesion deficiency 3 Diseases 0.000 description 3
- 230000001343 mnemonic effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 210000000707 wrist Anatomy 0.000 description 3
- 101100381940 Acidianus ambivalens bps2 gene Proteins 0.000 description 2
- 101000766246 Homo sapiens Probable E3 ubiquitin-protein ligase MID2 Proteins 0.000 description 2
- 102100026310 Probable E3 ubiquitin-protein ligase MID2 Human genes 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- ONCZDRURRATYFI-QTCHDTBASA-N methyl (2z)-2-methoxyimino-2-[2-[[(e)-1-[3-(trifluoromethyl)phenyl]ethylideneamino]oxymethyl]phenyl]acetate Chemical group CO\N=C(/C(=O)OC)C1=CC=CC=C1CO\N=C(/C)C1=CC=CC(C(F)(F)F)=C1 ONCZDRURRATYFI-QTCHDTBASA-N 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 102100021334 Bcl-2-related protein A1 Human genes 0.000 description 1
- 101100268670 Caenorhabditis elegans acc-3 gene Proteins 0.000 description 1
- 101100495256 Caenorhabditis elegans mat-3 gene Proteins 0.000 description 1
- 101000677540 Homo sapiens Acetyl-CoA carboxylase 2 Proteins 0.000 description 1
- 101000894929 Homo sapiens Bcl-2-related protein A1 Proteins 0.000 description 1
- OAKJQQAXSVQMHS-UHFFFAOYSA-N Hydrazine Chemical compound NN OAKJQQAXSVQMHS-UHFFFAOYSA-N 0.000 description 1
- 101100187291 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) nop-12 gene Proteins 0.000 description 1
- 239000004235 Orange GGN Substances 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/42—Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
- G05B19/425—Teaching successive positions by numerical control, i.e. commands being entered to control the positioning servo of the tool head or end effector
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/0093—Programme-controlled manipulators co-operating with conveyor means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41815—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
- G05B19/4182—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell manipulators and conveyor only
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39133—Convert teached program for fixed workpiece to program for moving workpiece
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45213—Integrated manufacturing system ims, transfer line, machining center
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Numerical Control (AREA)
- Control Of Position Or Direction (AREA)
Abstract
Teach assist apparatus for a programmable manipulator arm precomputes a projected fixed path solution, during an initial teaching operation, which represents a desired series of work operations of the manipulator arm in the minimum execution time while the workpiece is moving at a projected velocity. The apparatus receives input data representing the positions of the arm relative to the stationary workpiece during the teaching operation. It then formats the precomputed path data for storage into a control memory of the manipulator. The stored data also includes projected workpiece positions in terms of basic linear displacement units corresponding to positions of the workpiece. During playback of the series of work operations, control apparatus is provided to reconstruct the precomputed fixed path solution from the stored data in accordance with movement of the workpiece. <IMAGE>
Description
SPECIFICATION
Improved off-line teach assist apparatus and on-line control apparatus
Cross reference to related applications
The present application is related to co-pending U.S.A. application Serial No. 625,932 filed by J.F.
Engelberger et al on October 1975 and corresponding British application No.44900/76, also U.S.A.
application Serial No. 721,805 filed by J.F. Engelberger et al on September 8, 1976 (now issued as a patent No.4,086,522) and corresponding British application No.31163/77, and these co-pending applications are hereby incorporated by reference for all purposes.
BACKGROUND OF THE INVENTION
A. Field of the invention
The present invention relates to teach assist apparatus and manipulator control apparatus and more particularly to an arrangement whereby the teach assist apparatus during an initial teaching operation precomputes an optimum path of movement at the dynamic capabilities of the manipulator apparatus to perform a series of program work operations and to account for projected workpiece movement. Data signals representing the precomputed optimum movement of the manipulator arm in terms of conveyor movement and position are recorded into a main control memory of the manipulator apparatus and utilized during a playbackworkcycle by control apparatus to perform the work operations in minimum execution time and at the dynamic capabilities of the manipulator arm in accordance with dynamic conveyor movement.
B. Description of the prior art
Program manipulators of the type shown, for example in Dunne et al U.S. Patent No. 3,661,051 have been employed in the past to perform various types of operations on conveyor carried workpieces. Thus, in co-pending application Serial Nos. 625,932 and 721,805, arrangements are shown wherein the programmable manipulator is taught a series of work operations to be performed on a workpiece during an initial teaching phase with the conveyor stationary or at various teach positions. The static teach data is projected to account for projected conveyor movement at a predetermined conveyor velocity to translate the static taught data. The translated data is then recorded. The recorded data is utilized during a playback of the work cycle in accordance with conveyor movement to control movement of the manipulator to perform the work operations.While this arrangement is generally suitable for its intended purpose, the manipulator arm movement is not projected on the basis of optimum execution time to perform the taught program in minimum execution time at the maximum dynamic capabilities of the manipulator arm.
Another conveyor tracking arrangement is disclosed in U.S. Patent No.4,011,437 which issued to R.E.
Hohn on March 8, 1977. In this arrangement, the program is taught with a stationary conveyor and all manipulator arm positions are recorded without any calculations for projected conveyor motion during playback. During each playback cycle, various programs are executed by a data processor to correct and modify the movements of the manipulator for the motion and positions of the conveyor. Various techniques are disclosed to compensate for the queing delay of anticipated control signals which are generated by the program and for tracking error based on past performance to anticipate further tracking behavior. For example, tracking apparatus determines the position off-set as unprogrammed position change from the conveyor position at which the arm positions are recorded. The tracking apparatus then off-sets the recorded arm positions accordingly.Second apparatus determines the rate of change of conveyor motion during a fixed time interval, interrupt time, between control signals to determine tracking velocity error. Other apparatus monitors the rate of the unprogrammed change to generate a following error signal. The various following and tracking signals are utilized to modify the recorded data with all conveyor tracking operation being unprogrammed in the teach mode and entirely compensated for on-line during the playback of a work cycle. Thus, the arrangement in Hohn does not project and calculate optimum manipulator arm movement to minimize execution time in accordance with projected conveyor motion in an off-line teach mode.
Another arrangement disclosed in U.S. Patent No. 3,909,600 which issued to R.E. Hohn on September 30, 1975, discloses apparatus for controlling a manipulator arm to move at a predetermined velocity and acceleration along a predetermined path in space between two predetermined points. In a teach mode, the manipulator arm coordinates for the two points are recorded along with a predetermined path velocity. In a playback cycle, a data processor operating on a fixed sampling time for use with a fixed time interval, servo interrupt control circuit calculates path movement data by determining appropriate incremental positional changes to be moved in the fixed sample times.The initial and final velocities of the movement between the two steps is utilized along with the distance between the two points to determine required acceleration or deceleration movement of the arm. A number of direction numbers and incremental displacement intervals are calculated to define the path during playback in real time operation of the manipulator. The span between any required acceleration and deceleration spans is programmed at a constant predetermined path velocity. While this arrangement is also generally suitable for its intended purpose, it does not precompute optimum manipulator arm movement for minimum execution time to project arm movement in accordance with projected conveyor motion in an off-line teaching mode.The arrangement in Hohn 3,909,600 also requires a relatively complex and high speed computerforthe path computations performed during the playback of the work cycle.
Summary of the invention
It is therefore a principal object of the present invention to provide a new and improved programmable manipulator arrangement which may be employed with a moving conveyor and wherein one or more of the above described disadvantages of the prior art arrangements are eliminated.
It is another object of the present invention to provide a new and improved programmable manipulator arrangement wherein the manipulator arm is initially programmed in an off4ineteaching mode to teach a number of work operations to be performed in a playback or work cycle on a moving workpiece; the off-line teach assist apparatus precomputes an optimum fixed path for manipulator arm movement on the basis af the maximum dynamic capabilities of the manipulator arm to accomplish the work operations irr minimum execution time and to account for projected conveyor movement
It is a further object of the present invention to provide a new and improved on-line manipulator control apparatus to control movement of a manipulator arm to execute a predetermined series of operations with respect to a moving workpiece from recorded, precomputed data; the on-line control apparatus during a replay of the work operations reconstructing a fixed path solution of arm movement as precomputed during an initial off-line teaching mode to perform the work operations in replay in minimum execution time and in accordance with dynamic workpiece movement.
Briefly in accordance with one important aspect ofthe present invention, teach assist apparatus is provided for a programmable manipulator arm to precompute a projected fixed path solution during an initial teaching operation. The projected fixed path solution represents a desired series of work operations of the manipulator arm to be performed with respect to a workpiece in the minimum execution time while the workpiece is moving at a projected velocity.
The teach assist apparatus computes the minimum execution time on the basis of the maximum dynamic capabilities of the manipulator arm being taught. The teach assist apparatus receives input data representing the positions of the arm relative to the workpiece as the arm is moved during the initial teaching operation to different positions of the stationary workpiece. The teach positions of the arm correspond to the desired series of work operations of the manipulator relative to the stationary workpiece.
The teach assist apparatus then formats the precomputed path data for storage into a control memory of the programmable manipulator. The stored data also includes projected workpiece positions in terms of basic linear displacement units corresponding to positions of the workpiece.
During an on-line playback of the series of work operations, control apparatus is provided to reconstruct the precomputed fixed path solution from the stored data in accordance with dynamic movement of the workpiece. The control apparatus performs arithmetic computations in accordance with a stored program as determined by the data recorded in the main control memory.
Brief description of the drawings
The invention both as to its organization and method of operation together with further objects and advantages thereof will best be understood by reference to the following specification taken in connection with the accompanying drawings in which:
Figure 1 is a diagrammatic perspective view and block diagram representation of the off-line teach assist apparatus and the on-line control apparatus for teaching and controlling movement of a manipulator apparatus in working location alongside a conveyor;
Figure2 is a diagrammatic representation of the dynamic response of a manipulatorto a control signal;;
Figure 3 is a diagrammatic representation of the dynamic response of a manipulator and the corresponding control signal as calculated in an off-line teaching mode and generated during an on-line, real time playback operation in accordance with the apparatus of the present invention of Figure 1; figures 4,6 and 6 are diagrammatic representations of various dynamic profiles illustrating velocity versus time relationships in accordance with the apparatus of the present invention of Figure 1;
Figure 7 is a flow diagram representation of the general operation of the off-line teach assist apparatus of Figure 1; Figure 8 is a diagrammatic perspective representation of the manipulator apparatus of Figure 1 and illustrating calculations performed during the off-line teaching mode by the present invention;;
Figures g, 70 and 11 are diagrammatic representations of the respective position, velocity, and acceleration profiles calculated by the off-line teach assist apparatus of the present invention;
Figures 12A and 72B are diagrammatic representations of velocity profiles illustrating the teach assist calculations performed by the off-line teach apparatus of the present invention;
Figures 13 and 74 are flow diagram representations of one calculation or predict method utilized by the teach assist apparatus of the present invention of Figure I in connection with Figure 7; ;
Figures 15A and B when assembled as shown in Figure T5C are a logic and block diagram of the control circuitry of the present invention of Figure t; Figure 16 is a logic and block diagram representation of portions of the control circuitry of Figure 15; and
Figure 17is a diagrammatic representation of various timing signals and waveformsoccurring in the circuitry and control apparatus of Figures 15 and 16.
Description of the preferred embodiment
In accordance with the present invention and referring to Figure 1, a programmable manipulator generally referred to at 10 is illustrated in a working relationship alongside a conveyor generally referred to at 12. The manipulator apparatus 10 includes a manipulator arm 11 that is controllable in a plurality of axes to perform a predetermined series of work operations referred to as a work cycle on a workpiece carried by the conveyor 12. The work cycle, for example, is a series of spot and/or seam welds performed on a car body carried by the conveyor 12.
The manipulator arm 11 is moved in synchronism with movement of the conveyor 12 by on-line control apparatus connected to the manipulator 10 and generally referred to at 14. Program data representing the predetermined work cycle in minimum execution time as a precomputed fixed path in space is stored in a control memory 16 of the on-line control apparatus 14. During the replay or playback of a work cycle, the stored program data is read out of the control memory 16to an on-line computation and control unit 18 of the overall control apparatus 14. The on-line computation and control unit 18 reconstructs the precomputed fixed path in space from the data read out of the memory 16 and controls movement of the manipulator arm 11 by generating position, velocity and acceleration controls.
The program data stored in the memory 16 and representing the predetermined work cycle is calculated during an off-line teaching mode by off-line teach apparatus referred to generally at 30. The term off-line is utilized only to denote teaching operation as opposed to playback work cycle operation. The off-line teaching may be performed at the conveyor location or at a separate simulated conveyor. During the off-line teaching mode, the manipulator arm 11 is moved over the series of work operations to be taught with respect to the workpiece. Conveyor position data is generated by a conveyor encoder 32 and manipulator arm position data is generated by manipulator encoder apparatus.
The conveyor encoder data and the manipulator encoder data is utilized by an off-line teach assist computer 34 of the off-line teach apparatus 30 in accordance with a stored program to generate data that represents a fixed path in space to achieve execution of the predetermined work cycle with optimal dynamic movement of the manipulator arm 11 with respect to movement of the conveyor 12. The dynamic movement of the manipulator arm 11 is characterized by the maximum dynamic capabilities and response of the manipulator arm. The off-line teach assist computer 34 calculates projected data that represents real time manipulator arm positions and corresponding conveyor positions accounting for projected conveyor motion.Thus, the data inputted during the off-line teaching mode under static conditions is optimally projected into real time on-line operation to define an optimum fixed path solution to be executed by the manipulator arm in accordance with dynamic conveyor motion and in optimal execution time. The projected data calculated by the off-line teach assist computer 34 is then stored in the memory 16 for use by the on-line computation and control unit 18 during an on-line playback of the work cycle. The on-line computation and control unit 18 reconstructs the fixed path solution from the data read out of the memory 16 to control movement of the manipulator arm 11 to describe the work cycie in accordance with movement of the conveyor 12.
A data terminal 36 is provided for the control of the off-line teach assist computer unit 34 and also to control the input of the conveyor positional data and the manipulator arm positional data to the off-line teach assist computer 34. A teach gun control 38 is interconnected with the manipulator 10 and the off-line teach apparatus 30. The teach gun control unit 38 is utilized to control movement of the manipulator arm 11 with respect to the workpiece and the conveyor 12 during the teaching mode. The manipulator apparatus 10 for example is of the general type described in U.S. Patent No.3,661,051 and co-pending application Serial Nos.
721,805 and 625,932 to which reference may be made for a more detailed discussion of the teach control apparatus, manipulator apparatus and the general form of the on-line control apparatus.
The off-line teach assist computer 34 is connected to the conveyor encoder 32, the manipulator 10, and the associated control apparatus 14 by an interface stage 40 for control of the input and output of data. A conveyor tachometer 33 inputs line speed data to the on-line control apparatus 14. The interface stage 40 is connected to the manipulator apparatus 10 via a detachable connector 42. Thus, during the off-line teaching mode, the off-line teach apparatus 30 is connected to the manipulator apparatus 10. Upon conclusion of the teaching mode, the off-line teach apparatus 30 is disconnected for use at another location for teaching another manipulator apparatus 10. The off-line teach assist apparatus 30 may be utilized to teach the same or various other work cycles.When not in use, the off-line teach assist apparatus 30 may be removed from the conveyor work station and placed at a storage location.
During playback of the work cycle to be performed on a workpiece carried by the conveyor 12, the manipulator arm 11 is controlled by the on-line control apparatus 14 to perform the predetermined work cycle in real time in accordance with the precomputed data stored in the memory 16. The precomputed data is generated by off-line teach assist computer unit 34 during the off-line teaching mode. During an on-line playback of the work cycle, the on-line computation and control unit 18 reconstructs and computes real time position, velocity and acceleration command signals from the stored program data to control movement of the manipulator arm 11 to perform the predetermined work cycle with respect to a moving workpiece on the conveyor 12 in accordance with the actual dynamic conveyor movement.
Thus, during the off-line teaching mode, the relatively powerful off-line teach assist computer unit 34 performs precomputations and calculations without time restrictions. In playback, the on-line computation and control unit 18 performs arithmetic computations by processing the stored data at a high data rate speed in comparison to powerful general purpose computers. The on-line computation and control unit 18 is capable of reconstructing the precomputed fixed solution from the stored data to optimally control movement of the manipulator arm 11 in real time. Thus, the on-line computation and control unit 18 is not required to perform the complicated time consuming computations in real time to calculate the dynamic path of the manipulator arm 11 with respect to the moving conveyor 12.
In accordance with important aspects of the present invention, the relatively complex computations requiring the major portion of the compute time to define the optimum real time dynamic path or manipulator arm trajectory are performed during a teaching mode by the off-line teach apparatus 30. The on-line real compute time to reconstruct the precomputed optimal fixed path solution of manipulator arm movement relative to and in synchronism with the conveyor line 12 is minimised to allow execution of a work cycle limited only by the dynamic capabilities of the manipulator apparatus and not by the real time compute burden.If it were attempted to perform all the necessary calculations to define optimum dynamic manipulator arm movement during real time in the on-line mode, the real time compute burden would necessitate either approximate solutions and dynamic following routines that are not optimal solutions or an expensive, complicated, extremely high speed computer.
Considering Figure 2a, the plot 50 illustrates the approximate velocity verses time response characteristic when a manipulator arm is commanded to move from one point P1 to another point P2 in response to a command signal 52. The command signal 52 is approximately a square wave (a step function of velocity) with a sharp leading edge 54 that commands infinite acceleration, a maximum velocity command portion 56 and a sharp trailing edge 58 commanding infinite deceleration when the manipulator controls indicate that the commanded point P2 has been reached.In response, the manipulator accelerates from the point P1 at the maximum acceleration rate of the manipulator up the sloped portion 60 of the plot 50, overshoots the maximum desirable velocity 56 at point 62, and decelerates at the maximum deceleration rate of the manipulator down the sloped portion 64 after the command signal 52 indicates that the desired position P2 has been reached.
Thus, the manipulator arm initially lags the commanded signal (slope 60), then overshoots (portion 62), and then lags the command signal (slope 64). In terms of positional error and referring now to Figure 2b, the initial lag in response at 60 of Figure 2a results in the lagging positional error portion 66 of Figure 2b. Then, as the manipulator overshoots in velocity at 62 of Figure 2a, the positional following error is reduced toward zero at 68 of Figure 2b. However, the manipulator is now commanded to decelerate instantaneously at an infinite deceleration rate as the point P2 is reached and passed. Thus, the manipulator overshoots creating the positional error denoted at 70. The positive positional error under 70 indicates that the manipulator has overshot or moved beyond the commanded point P2. Accordingly, the manipulator attempts to correct the positional overshoot.The correction of the positional overshoot portion under 70 corresponds to the velocity response portion 72 indicating a negative velocity with respect to the initial forward velocity.
In terms of execution time to move from P1 to P2, the total time referred to at ta is required to finally settle at the commanded point P2 as measured from the start of the command at P1. The additional execution time At is the control lag time required for the correction of the overshoot response with respect to the optimum execution time tb.
In accordance with important aspects of the present invention and referring now to Figure 3a, the optimum execution time tb is achieved by controlling movement of the manipulator by a command signal 74 precomputed in the off-line teaching mode by the teach assist apparatus 30 and reconstructed in a real time, on-line playback mode by the on-line control apparatus 14. The control signal 74 is calculated on the basis of the maximum dynamic capabilities of the manipulator and on the basis of the desired positional move, the distance between the points P1 and P2.
The representation in Figures 2 and 3 describe the behavior of a single axis of the manipulator or the behavior in a single Cartesian coordinate axis of the manipulator arm.
Thus in accordance with one particular predict method, the off-line teach assist computer 34 precomputes the real time command signal 74 between two taught points P1 and P2 between which the manipulator is to be moved. The maximum dynamic capabilities of the particular manipulator arm 11 being controlled are identified as +aMAx corresponding to the maximum acceleration rate of the manipulator arm 11, -aMAx corresponding to maximum arm deceleration, and VMAX corresponding to maximum arm velocity. The off-line teach assist computer 34 then precomputes the optimum command signal 74 to move from point P1 to point P2 corresponding to a fixed path solution executed in the minimum or optimal time.The command signal 74 commands the manipulator arm 11 during a first predetermined time interval T1 to accelerate at the maximum acceleration +aMAx to the maximum velocity VMAX at the end of the time interval T1. The command signal 74 then commands the manipulator arm to move at the maximum velocity VIA)( for a second predetermined time interval TM.At the end of the time interval TM, the command signal 74 then commands the manipulator arm to decelerate during a third predetermined time interval T2 at the maximum deceleration rate -aMAx. Thus, the command signal 74 is precomputed during the off-line teaching mode to project a real time, fixed path solution for movement between the points P1 and P2 in minimum execution time; the manipulator arm being commanded to move at maximum dynamic characteristic throughout the entire time interval tb.
Accordingly, the manipulator arm 11 in response to the command signal 74 is commanded to move within its dynamic capabilities to describe a path form P1 to P2 without the overshoot and settling time At of Figure 2a. Thus, the execution time tb to move from P1 to P2 in response to the command signal 74 is less than the execution time ta in response to the command signal 52 by a substantial factor At. The response characteristic of the manipulator arm 11 is approximately the same as the command signal 74. The small positional error of the manipulator arm in following the command signal 74 is depicted in Figure 3b. Thus, the small positional error and optimal, minimum execution time to move from P1 to P2 is achieved by precomputing the command signal 74.The area under the velocity versus time command signal 74 defines the positional change described by the manipulator arm (in one manipulator axis or in one Cartesian coordinate axis) between the points P1 and P2. The times T1, TM and T2 are calculated by the off-line teach assist computer 34.
In accordance with further important aspects of the present invention, the off-line teach assist computer 34 also precomputes the minimum execution to move between the two points P1 and P2 on the workpiece carried by the conveyor 12 accounting for projected conveyor motion. Thus, the off-line teach assist computer 34 accounts for and precomputes on the basis of a move from the point P1 to the point P2 while the point P2 is moving at the projected conveyor velocity. This is accomplished by projecting the conveyor position to a point and in time corresponding to the precomputed manipulator arm positions to traverse from P1 to P2. Further, the off-line teach assist computer 34 in response to input commands from the data terminal 36 precomputes the manipulator arm movement with respect to projected conveyor motions to perform welds at the points P1 and P2.
Thus, the off-line teach assist computer 34 precomputes the weld tracking command signal portions 76 and 78 of the command signal 74 to perform welds at the points P1 and P2 respectively.
During the on-line playback of the work cycle with respect to the workpiece on the moving conveyor, the on-line computation and control unit 18 reconstructs the fixed path solution from the data stored in the memory 16 that is precomputed by the off-line teach assist computer 34. The on-line computation and control unit 18 generates position, velocity and acceleration command signals in accordance with conveyor movement. Referring now to Figures 4, 5 and 6, the off-line teach assist computer 34 in a preferred embodiment is programmed to calculate and precompute fixed path solutions ofoptimum manipulator arm trajectory with minimum execution times. The optimal fixed path solutions define the minimum execution time in terms of conveyor following behavior to execute a predetermined work cycle.The optimization of the execution time is limited only by the dynamic characteristics of the manipulator arm. The calculation of velocity, acceleration and position along with dynamic tracking data is all computed from static teach data and is performed in an off-line teaching mode without compute time restrictions. In this way, the precomputation programs performed by the off-line teach assist computer 34 may be easily modified in accordance with the desired optimum accuracy to be achieved without affecting the complexity of the on-line computation control unit 18. Various precomputation and predict analyses may then be achieved by modifying the programming of the off-line teach assist computer 34 while utilizing the same on-line computation and control unit 18.
For example, in Figure 4 the dynamic characteristic plot 80 of velocity versus time describes the movement of the manipulator arm 11 in one axis as the arm moves between two points Pwl and PW2 on the moving workpiece. The velocity versus time characteristic 80 represents the optimum fixed path manipulator axis movement as precomputed in the off-line teaching mode in accordance with a particular stored program and with respect to projected conveyor movement.
The velocity characteristic 80, also referred to as a velocity profile, is computed according to the stored program in the off-line teach assist computer 34 as a short move analysis when the distance between the two points Pwl and PW2 is within a predetermined short move distance. The coordinates of the initial point Pwi identified at ON1 represent any general point in a work cycle at which a weld has been completed on the workpiece. The nearly horizontal portion 82 of the velocity profile 80 represents the weld performed at the point Pwi during the time portion referred to at weld 1.Throughout a predetermined weld time interval, the manipulator arm welding tip accurately tracks the movement of the conveyor to weld at the point Pawl. The weld 1, step 1 illustrates the weld tip tracking the workpiece at the tracking velocityON1 along the nearly horizontal, velocity profile portion 82. At the end of the weld 1, step 1, the manipulator arm in accordance with the predetermined work cycle is to traverse to a new static point PW2 on the workpiece to perform the next designated weld, weld 2, identified by the profile portion 84.
During the off-line teaching mode, the manipulator 11 is moved in accordance with the teach gun control 38 to the static point Pw1 on the workpiece. Next a weld 1 step is programmed by inputting a weld command from the teach controls 38 or the data terminal 36 into the off-line teach assist computer 34.The off-line teach assist computer 34 calculates the weld 1, step 1 data to track the moving point Pwl of the workpiece on the conveyor 12 and generates the data to define the tracking portion 82 at nearly constant velocityGNn to complete the weld at the point Pwl atthe.calculated manipulator arm coordinates ON1. The weld 1, step 1, is computed by tracking the conveyor 12 for a predetermined number of conveyor encoder linear displacement units referred to as LSD's as discussed in more detail in the aforementioned application Serial No.721,805.
The weld 1, step 1 calculations are precomputed at a projected maximum conveyor velocity Vc to provide a minimum welding time at the maximum allowed conveyor velocity Vc to ensure a satisfactory weld.
Next, the teach controls 38 are utilized to move the welding tip on the manipulator arm 11 to the workpiece point PW2, the next weld point to be performed in the predetermined work cycle. The off-line teach assist computer 34 then computes the fixed path, optimal solution in the off-line teaching mode to perform the traverse from point Pwl to point PW2 accounting for projected conveyor motion and in terms of a number of conveyor displacement units, LSD's.
In accordance with the calculations to be discussed in detail hereinafter, the off-line teach assist computer 34 computes the minimum execution time Ts to move the manipulator weld tip between the static points Pwi and PW2 as projected into real time and accounting for projected conveyor movement. For the short move analysis illustrated in Figure 4, the off-line teach assist computer 34 computes the move between the projected points Pwl and PW2 by defining an acceleration step 2 for a predetermined time interval T1 to the coordinates ON2, followed by a deceleration step 3 for a predetermined time interval T2 to the coordinates
ON3.The point ON3 represents the projected coordinates in real time of the point Pew2. The off-line teach assist computer then computes a weld 2, step 4,to weld and track the point PW2 on the moving conveyor 12. The computed weld 2, step 4, continues from ON3 to the manipulator arm coordinates ON4 corresponding to the projected point PW2 moving in real time during the time of the weld 2, step 4. The acceleration step 2 is referred to at the velocity profile portion 90 and the deceleration step 3 is referred to at the velocity profile portion 92. The sum of the times T1 and T2 equals the minimum execution time Ta of the traverse between the projected points Pwl and PW2 moving at the conveyorvelocityVc.
Referring now to Figure 8, the projected move between the points Pwl and PW2 is diagrammatically illustrated in an XYZ coordinate system in conjunction with one type of manipulator arm having six controlled degrees of freedom or control axes. The manipulator arm is represented by the vector segments h1, r, h2, h3 and h4 and the control axes are represented by the angles a, P y 5 E and the vector r. The angle a represents rotary axis movement of the arm segments h1 and r about the Z axis of the XYZ generalized coordinate system. The angle ss represents up-down (tilt) axis movement of the arm segments h1 and r away from the Z axis.The vector r represents in-out axis movement of the arm segment r to define the wrist point
Q of the manipulator system. The angle y represents wrist bend axis movement of the hand segment h2 with respect to the longitudinal axis of the arm segment r. The end of the segment h2 defines the point R. The angle 5 represents yaw (wrist swivel) axis movement of hand segment h3 a bout the segment h2 to define the point S at the end of the segment h3. The angle E represents hand swivel axis movement of the hand segment h4 about the h3 segment. The hand segment h4 in the case of a welding manipulator is fitted with a welding gun to define the point Tat the engagement of the welding tips of the welding gun.
In Figures, the manipulator welding gun tip, point T, is illustrated as positioned to the point Pwl on the workpiece carried by the conveyor 12. As discussed hereinbefore, the off-line teaching mode may be conducted at any arbitrary conveyor position or positions. However, for simplicity and for illustrative purposes, it is assumed that the manipulator arm as shown in Figure 8 corresponds to the precomputed projected point Pwl at the projected conveyor location in real time also as computed by the off-line teach assist computer 34.
However, it should be realized that the manipulator and conveyor during the off-line teaching mode are not necessarily advanced to these projected positions while teaching. Periodically, the manipulator arm and the conveyor are approximately advanced to the projected positions for foreseeability considerations to ensure against collision problems when teaching a work cycle on a three-dimensional workpiece. Thus, the positioning of the manipulator arm and advancement of the conveyor to the projected point pawl as illustrated in Figure 8 may occur in the off-line teach mode only as represented by the data in the off-line teach assist computer 34 as projected, precomputed coordinate data.
In any case, the point Pwl in Figure 8 defines the static workpiece point Pwl at the real time conveyor position Dwl in the program work cycle corresponding to the end of completion of the weld 1, step 1. Thus, the vector ASs between Pwl and the next weld point PW2 defines a static workpiece distance AS5 representing the distance between the points Pwl and Pew2. For simplicity it is assumed that the conveyor is oriented along the X coordinate axis although it should be understood that any conveyor orientation or shape of conveyor is contemplated by the present invention.The vector segment defined between the points
PW2 and Pw2dyn. represents the projected movement ofthe workpiece point PW2 due to projected conveyor displacement at maximum conveyor velocity Vc during the execution time T5 of the manipulator arm traverse between points Pwl and PW2; i.e. the point PW2 is moving along ASc at the conveyor velocity while the arm is moving between the points Pwl and PW2 dynamic.Thus the vector ASc represents dynamic projected conveyor movement during the execution time Ta. The vector segment AS TOTAL defined between the points Pw1 and Pw2dyn. represents the total distance moved by the manipulator arm tip between the points Pw1 and Pw2dyn. during the execution time T5 with projected conveyor movement.
After the off-line teach assist computer 34 computes the minimum execution time T5 for the arm to traverse from point Pw1 to point PW2 dyn. in accordance with the optimum predict stored program, the vector
As total and thus the coordinates of the point Pw2dyn. are computed. Next, the coordinate data defined by the point Pw2dyn., corresponding to point ON3 in Figure 4, are converted from the XYZ coordinate system to the manipulator axis coordinates Oi through 06, for a six axis manipulator machine.
The off-line teach assist computer 34 then computes a weld 2, step 4, to perform the weld at the point Pw2 to define the coordinate point ON4 at the end of the weld 2 step, again in manipulator axis coordinates Oi - 06.
The minimum execution time T5 along with the data ON1 and ON3 are utilized along with the maximum allowable acceleration and deceleration of the manipulator arm to precompute and define the acceleration portion 90 over time interval T1 and the deceleration portion 92 over time interval T2. Thus, the sum of the time intervals T1 + T2 equals the minimum execution time Ta. The acceleration or deceleration portions 90 and 92 are also utilized to define the coordinates of the point On2 at which the manipulator in the fixed path solution exits the acceleration phase 90 and enters the deceleration phase 92.
It should be noted that the vector Asc corresponds to the number of conveyor displacement units moved by the conveyor during the execution time Ta in terms of the maximum conveyor velocity, ASc = Vc Ta. The off-line teach assist computer 34 then has precomputed the coordinate points for each axis of the manipulator, i.e. Ol through 86 values, for the projected points ON1, ON2, ON3 and ON4. The move to the next weld point in the work cycle, e.g. Pw3 after the point PW2, is then taught and calculated in the same manner as described hereinbefore and as illustrated in Figure 4. The PW2dyn point corresponds to the point ON3 in Figure 4.After teaching a series of such weld points, Pwi - PWN, the off-line teach assist computer 34 upon a command from the data terminal 36 transfers the precomputed, projected manipulator coordinates and corresponding projected conveyor positions to the main control memory 16 for use in reconstructing the optimal, precomputed, projected fixed path solution in the on-line work cycle.
Considering now movement between two weld points Pwl and PW2 on the workpiece that represents a distance in space greater than the predetermined distance for a short move analysis, a dynamic velocity profile 86 as illustrated in Figure 5 is precomputed by the off-line teach assist computer 34 in accordance with a long move analysis of the stored programs. The representation in Figure 5 describes the behavior of the manipulator arm 11 in a single manipulator axis or in a single Cartesian coordinate axis. Thus, for manipulator arm movement between static workpiece points representing a distance greater than the predetermined maximum short move distance, a constant velocity step, step 3, is precomputed at the maximum tip velocity Vm between the acceleration portion 90 and the deceleration portion 92.The overall optimal, execution time of the move Ta is then the sum ofT1, Tm and T2. Referring now to Figure 6, where high positional accuracy is required during a long move traverse between the points Pwl and PW2, a predetermined number of constant velocity steps are precomputed by the off-line teach assist computer 34 and inserted between the acceleration portion 90 and the deceleration portion 92. For example, in Figure 6, three constant velocity steps, steps 3a, 3b and 3d, referred to at 94, 96 and 98 respectively, are computed and inserted between the acceleration portion 90 and the deceleration portion 92. The times of the constant velocity mid steps 94, 96 and 98 are Tmi, Tm2 and Tm3 respectively.The positional accuracy considerations and the computation method to insert the constant velocity midsteps will be discussed in detail hereinafter.
In the on-line playback operation, the on-line computation and control unit 18 reconstructs the fixed path solution as represented by the stored data in the memory 16. The details of the on-line computation and control unit 18 are discussed in more detail hereinafter.
Briefly, the on-line control apparatus 14 controls operation of the manipulator 10 in several modes, PTP,
PTP(c), CP (ACC=0), CP (ACW0) and also various teach modes. Reference may be made to the aforementioned application Serial Nos. 721,805 and 625,932 for a general discussion of these operational modes. The CP (ACC=0) mode is utilized for continuous path movement of the manipulator arm to accomplish welding such as steps 1 and 5 in Figure 5, constant manipulator axis velocity movement such as step 3 in Figure 5 and other continuous path movements where the precomputed accelerations is zero or approximately zero. For a weld step the mode is designated CPW. The CP (ACA0) is utilized for constant acceleration steps such as steps 2 and 4 in Figure 5.The various modes are assigned and coded in the data stored in the memory 16 as precomputed by the off-line teach assist computer 34.
The on-line playback operation of the on-line computation and control unit 18 to generate the position, velocity and acceleration command signals to reconstruct the velocity command signals illustrated in
Figures 3 through 6 are described by the following relationships:
Mode
PTP: POS=On VEL=O ACC = 0
CP:
ACC = 0:POS = On-1 + Hn-ûn-1 x m
N VEL = ##xKvx64 N ACC=0
## = #n-#n-1 CP: ACC f 0: 0; POS = #n-1 + Om + #n-1xmx1 x N 2 2 N Kv 64 ENEW; VEL = 2 A ûKv 64 - #OLD N #;VEL = #n-1+(#n-#n-1)xm = #m N # ACC = ##xKvx64 N AO=OnO ni where m = interp. count
N = the number of interpolation intervals in the step 6= ##/64 LSD conveyor change
Kv = number of interpolation intervals/step
number of conveyor LSD's/step On = next position (next data Dn, the end of step n) #n-1 = previous position (previous data Dn-1, the end of step n-1) ONEW = Û n = next velocity (end of step n) Ü OLD =#n-1 = previous velocity (end of step n-1) Om = present velocity (commanded)
n = present step identification
The symbol #n-1 in on-line operation is always utilized to refer to the previous position at the end of the last step data Dn-1. The symbol #n is utilized to refer to the precomputed position at the end of the present step data Dn to which the manipulator arm is to be moved during the step n. This convention is utilized within the on-line computation and control unit 18 regardless of whether the step is a CP (ACC = 0) or CP (ACC * 0) mode step.
Referring now to Figure 7, the off-line teach assist computer 34 in one embodiment operates according to the general flow diagram illustrated therein to perform the off-line precomputations, calculations and teach-assist functions as discussed hereinbefore. The overall teach assist program flow proceeds from the
START designation through an INITIALIZE block 100 wherein an internal program step counter of the computer 34 is set to the first point, n equals 1. After the INITIALIZE block 100 the program flow proceeds through the A program branch marker to a decision block 102 to determine whether the STATIC point N data is READY?. If the determination for the entry of new static data input is no, the program proceeds to another decision block 104 to determine whether OTHER TASKS? are to be performed at this time.If the determination is no in the decision block 104, the program flow proceeds back to the A branch marker. If the determination in the block 104 is yes, i.e. other tasks are to be performed, the program flow proceeds to a decision block 106 wherein the determination is made as to whether or not the control data has been entered into the terminal 36, SET CONTROL DATA?. If the control data has been entered the determination in the decision block 106 is yes and the control data is entered as denoted by the process block 108 INPUT
CONTROL DATA. After the control data is entered, the program flow returns to the program branch marker
A. If the determination in block 106 is no, signifying that control data has not been entered at the terminal 36, a decision block LOAD MAIN CONTROL MEMORY? 110 is entered. If the determination is yes, the program flow proceeds through a process block 112 where the internal program counter is set to N = 1 and on two a B program branch marker.
Returning now to the program branch A, if the determination in the STATIC point N READY? decision block 102 is yes signifying that the entry of new static point data is ready according to the data terminal 36, the program flow in branch A proceeds through an INPUT STATIC POINT N DATA SET process block 114 wherein the static data from the manipulator encoders and the conveyor encoder for the point N is entered into the off-line teach assist computer 34. The program proceeds through the process block 114 after the entry of data to a marker C and into a PASS #1, PROCESS N STATIC block 116, denoting the processing of static data at the point N. In the process block 116, a full precomputation of the optimal execution time for movement to the point N from the previous program point N-1 is determined in accordance with a particular program stored in the computer 34.The details of the PASS #1, PROCESS N STATIC block 116 are shown in
Figure 13 and will be explained in more detail hereinafter.
Thus in the PASS #1 block 116, the execution time and fixed path solution for movement between the two points N-1 and N and a weld to be performed after reaching the new point N are computed, assuming a weld command has been entered on the data terminal 36 for the point N. In the process block 116, the dynamic parameters as discussed in connection with Figures 4 through 6 are computed and projected with respect to conveyor movement, i.e. the teach assist computer 34 calculates the real time, projected coordinates for the point N and the corresponding real time, projected conveyor position.At this point in the program flow, the program proceeds through the PASS #1 process block 116 through a reference marker E to an OUTPUT
CONTENTS OR CURRENT CONVEYOR REGISTER block 118 wherein the projected conveyor position for the point N is outputted to the data terminal 36. The projected conveyor position is utilized by the operator to either advance the conveyor or to merely indicate the projected conveyor position for the taught point N to the operator. This projected conveyor position corresponds to completion of this weld at point N in real time.
The program flow continues through the process block 118 to a process block 120 wherein the internal program counter is incremented by one from the point N to the next point, N = 2 for example. The program flow continues through the process block 120 to the marker A.
Resuming the program flow at marker B, when a command from the data terminal 36 is entered to load the main control memory with the previous taught points, EN, as accumulated in the computer 34, the program flow through branch B proceeds to a RETRIEVE/TN/CvSTATIC FROM FILE process block 122. In the process block 122, the static data for each point N in Cartesian transform format referred to as /TN/CV is recalled by the computer 34. The /TN/CV data calculated and stored in the PASS #1 process block 16. The program flow continues through an END OF PROGRAM? determination block 124 to determine if the end of program has occurred. If the end of program has not been entered at the particular point N identified by the program counter, the program flow continues to the reference marker D.The end of program is entered for a particular point N = NEIP by the data terminal 36 and stored in the computer 34. If the end of program has been detected for the point N being processed, the end of program latch would be set denoted by process block 126. The program flow then proceeds to the reference marker D.
Proceeding from the reference marker D, the teach assist computer program proceeds-to a PASS #2,
PROCESS N STATIC process block 128. In process block 128, a full predictor precomputation ofthefixed path solution to accomplish the commanded move, N-l to N, is accomplished as shown in more detail in
Figure 14 and as will be explained in more detail hereinafter. Briefly, the PASS #2 process block 128 performs the precomputation of the optimum execution time and the fixed path solution to project into real time the dynamic behavior of the manipulator arm in each of the control axes and a corresponding conveyor position to accomplish the dynamic profiles as described hereinbefore and illustrated in Figures 4 through 8.
The particular program stored in the teach assist computer 34 determines the exact computations performed in the PASS #2 process block 128. Several optimum predict methods or programs will be discussed in detail hereinafter.
After the full data has been calculated to accomplish the move from the previous point N-l to the next point N, the real time, projected coordinates for the point N in each of the manipulator axes along with the projected conveyor position are formated and outputted to the memory 16 as indicated by the process block 130.
The data outputted to the memory 16 represents the program data utilized by the on-line computation and control unit 18 to reconstruct the optimum, fixed path solution in accordance with dynamic conveyor movement in the real time work cycle. A process block 132 represents the storage of the outputted data for the point N by the teach assist computer 34 for use in precomputing the move from the point N to the next taught point N + 1 during the next program loop through the PASS #2 process block 128.
In a preferred embodiment, additional data is also calculated and outputted to the main control memory 16. The additional data includes a predetermined number of interpolation intervals that are calculated and assigned to each of the acceleration, deceleration, constant velocity and weld steps calculated for the move from the point N-l to the point N as discussed hereinbefore and as illustrated in Figures 4through 6. The number of assigned interpolation intervals in one specific embodiment is one of a predetermined set of binary multiples of 16. The number of interpolation intervals assigned to a particular step is equal to the next lowest binary multiple of 16 in the set below the number of conveyor LSD's calculated from the step. For example, considering a long move analysis, Figure 5, each of the steps 2 through 5 for the move from the point N-l to N (corresponding for example to Pwl to PW2) is assigned one number in the set of interpolation intervals in accordance with the calculated number of projected conveyor displacement units for each of the steps 2 through 5. Additionally a Kv velocity constant is also calculated for each of the steps and outputted to the memory 16 in a specific embodiment. The Kv constant is equal to the number of assigned interpolation intervals divided by the number of projected conveyor LSD's as discussed in the aforementioned application
Serial No.721,805.
After the outputting of data into the memory 16, the program flow of Figure 7 proceeds through a reference marker H to a determination block 134 to determine if the end of program latch has been set. If the determination is yes, the program flow proceeds from the determination block 134 to the START designation of the overall flow program of the teach assist computer 34. If the determination in block 134 is no, i.e. the end of program latch has not been set, the program flow continues from the determination block 134 through a process block 136. In process block 136, the internal counter is incremented from the point N to the point N+1. The program flow proceeds through the process block 136 to the reference marker B.
Thus, the program flow continues through the program reference markers, B-D-H-B, for all the stored and taught points ZN to retrive stored data in the computer 34, to compute the data representing the optimum dynamic move parameters for each point N, to compute the manipulator axis coordinates of each of the projected points and the corresponding projected conveyor position, and to output the data to the memory 16.
Thus, when the data terminal 36 inputs a load command to the off-line teach assist computer 34, all the previously taught, stored points are processed to precompute the fixed path solutions corresponding to the taught points and to load the data into the memory 16. At this point, the main control memory 16 has stored therein the appropriate data to reconstruct the fixed path solution as calculated by the off-line teach assist computer 34. The data in the memory 16 is then utilized by the on-line computation and control stage 18 in the on-line or playback mode to reconstruct and perform the taught, fixed path solution in optimal execution time to move over the taught points and to perform the taught welds in correspondence to movement and displacement of the conveyor 12.
The details of several precomputation methods utilized by the off-line teach assist computer 34 to calculate the optimum execution times for the work cycle will now be considered.
Considering first a simplified Cartesian predict method and referring now to Figures 8 through 11, an optimum execution time Ts is computed for each of the moves between successive weld points in the work cycle on the basis of the maximum dynamic capabilities of the particular manipulator apparatus that is utilized. As discussed hereinbefore, the maximum dynamic parameters are identified as +aMAx, -aMAx and VMAX. Considering one specific manipulator apparatus, the maximum composite tip velocity VMAX in the
Cartesian domain is 30 inches per second. To perform the predict method calculation, it is also necessary to know the permissable range of the conveyor line velocity.The maximum conveyor line velocity Vc is required to insure that the optimum time execution will not command the manipulator arm to exceed the maximum composite tip velocity and also to calculate the projected conveyor displacement during the execution time. The smallerthe overall variation (range) in permissable conveyor velocity, the higher the optimization of the precomputed move in terms of execution time by the manipulator and the efficiency of the overall work cycle; i.e. the maximum number of welds and work that can be performed in the overall work cycle for a given conveyor displacement and manipulator work station. In any case, if the maximum conveyor velocity Vc is 6 inches per second, for example, along a predetermined orientation, Vc = 6 inches per second is utilized in the precomputation method.The nominal conveyor line for example is 5 inches per second.
In the simplified Cartesian predict method under discussion, the maximum conveyor velocity Vc of 6 inches per second is subtracted from the maximum composite tip velocity VMAX of 30 inches per second to result in a relative maximum composite tip velocity VMR of 24 inches per second. This approach assumes the worse case wherein the direction of conveyor movement is aligned with the direction of movement of the manipulator tip, i.e. the vectors V and V MAX are aligned and subtracted.
The first step in the simplified Cartesian predict method determines whether a short move analysis or a long move analysis is required. The determination as discussed hereinbefore is made on the basis of the static distance on the workpiece between the two successive points PW1 and PW2, ASs in Figure 8. The PW1 point corresponds to the previous welded point at the projected, real time conveyor position and the point
PW2 corresponds to the next weld to be performed at the projected real time conveyor position at the time Pwl weld is finished.The Vector ASs corresponds to the static distance between the points Pwl and PW2 and is calculated by the teach assist computer 34 from the manipulator encoder data as the teach operator teaches the two points Pwl and PW2 by moving the manipulator tip between the two points by use of the teach controls 38. The manipulator encoder data is inputted under control of the data terminal 36 and the teach control 38 to the teach assist computer 34. It should be realized that the distance ASs is the same regardless of the conveyor position in the teaching mode.
In accordance with the parameters defined above, if the ASs static distance between the two workpiece points Pwl and PW2 is greater than five inches, the teach assist computer 34 defines and calculates a long move analysis. If the ASs static distance is less the five inches, a short move analysis is utilized.
The maximum short move distance is calculated from the relationship ASs maximum equals VMR multiplied by one-half the total time to execute the acceleration and deceleration steps:
ASS MAX. = 24 (T1 +T2) (1)
2 where T1 equals the time to accelerate to maximum tip velocity from tracking velocity and T2 is the time required to decelerate from maximum tip velocity to tracking velocity. In accordance with the maximum acceleration/deceleration parameters for a particular manipulator, the times T1 and T2 of each of the acceleration and deceleration steps are defined in effective time units corresponding to the number of conveyor encoder basic linear displacement units or LSD's of motion required to effect the desired arm motion with the conveyor moving at a maximum conveyor speed of 6 inches per second.The units for a 0 or velocity command are bits change/64 conveyor LSD's change and the units forO or acceleration command are bits change/(64 conveyor LSD's change)2. In one embodiment, the basic linear displacement unit, LSD, is .019563102 inches. If an aMAx of 115.01248 inches/sec.2 is assigned equal to: 24 inches/sec.
.01956312"/LSD x 1 x 64conv. LSD's W"/sec.
then T1 = T2 = .208672 secs. Thus, T1 is approximately equal to 64 LSD's of change to accelerate from 6/sec.
to 30/sec. If the maximum tip velocity VMAX of 30 inches per second equals 3000 bits per second (BPS) in terms of the encoder output readings, the particular manipulator apparatus is then capable of accelerating between a tracking velocity to the maximum relative velocity of 24 inches per second at a constant acceleration during the time the conveyor moves 64 conveyor LSD units at a maximum conveyor velocity of 6 inches per second. The maximum acceleration +aMAX and deceleration -aMAX then corresponds to a velocity change AV of 2400 BPS in a time interval At of .208672 seconds or the time for the conveyor to move 64 LSD's at maximum conveyor velocity. This corresponds to an acceleration of 12,500 BPS2 at a maximum conveyor velocity of 6 inches per second.Substituting the above parameters, T1 = T2 = .2086i2 seconds nto equation (1), the ASSMAX is found to be 5.008 inches.
Considering the short move analysis for movements between static weld points of less than 5 inches, the acceleration and deceleration steps as illustrated in Figure 4 are executed over time intervals T1 and T2 less than the time of .20876 seconds to traverse 64 LSD's. Thus, the manipulator tip does not reach the maximum composite velocity VMAX in a short move. The times T1 and T2 for the acceleration and deceleration steps are less than the .208672 seconds are are calculated in terms of the minimum execution time to traverse the distance between the points Pwl and PW2 at the projected conveyor velocity corresponding to a predetermined number of conveyor linear displacement units, LSD's.The details to calculate T1 and T2 for a short move analysis will be explained in more detail after a consideration of the more generalized long move analysis.
For execution in real time in the on-line mode, the acceleration and deceleration steps are accotnplished in an assigned number of interpolation intervals, either 32 or 64 interpolation intervals in accordance with one aspect of the present invention. As explained in more detail in the aforementioned application Serial No.
721,805,32 interpolation intervals are assigned to a step wherein it has been calculated that 32 to 63 conveyor LSD's will be traversed during the execution time of the step at a maximum conveyor velocity of 6 inches per second. In that case, some of the interpolation intervals in accordance with operation of the on-line computation and control unit 18 correspond to 1 LSD of conveyor displacement and a second predetermined number of the 32 interpolation intervals correspond to two conveyor LSD's as will be explained in detail hereinafter.
In one embodiment, the transition or determination point between a long move or a short move analysis may be modified such that a 64 interpolation interval step may be assigned in a short move analysis for a
ASs greater than 5 inches when it has been calculated that between 64 and 127 LSD's of conveyor motion at the maximum conveyor speed are required to execute each of the acceleration and deceleration steps. This method might be used where the length of the constant velocity middle step for a long move is below a predetermined minimum for optimum execution.
Considering now the details of the simplified Cartesian predict method and an example of a long move analysis, the optimum execution time T5 for the move between the weld points Pwl and PW2 (Figure 5) on the workpiece is calculated from the following equation: T,= T1 + T2 + TM (2) where TM iS the time required for the constant velocity middle step between the acceleration and deceleration steps.
The teach assist computer 34 in accordance with the precomputation predict program stored therein, in this case the simplified Cartesian method, proceeds to determine if a short or long move analysis is required on the basis of the ASs distance calculated from the manipulator encoder data defining the points Pwl and PW2. As discussed hereinbefore, if the ASs distance is determined to be greater than 5 inches, a long move analysis is indicated. For illustrative purposes assume that the ASs distance is calculated to be 11 inches.
After determining the AS5, 11 inches for example, the optimum total execution time T5 is calculated by substituting the known quantities into equation (2), Ts - 2(.208672) + TM sec. Thus, to define the overall time of the step T5, it is necessary to calculate TM, the time required for the constant velocity midstep, step 3 in
Figure 5, between the acceleration and deceleration steps.In this regard, the following expression defines the time of the midstep TM in terms of the acceleration and deceleration step times T1, T2 and the ASs static distance between the points Pw1 and PW2 #Ss = VMR T1 + VMR T2 + VMR TM (3)
2 2
This may be rewritten as follows:
TM = A Ss - T1 - T2 (4)
VMR
Further, the time for the step T5 is solved from equation (2) as:
Ts = 2(.208672) + .2496613 = .6670053 seconds.
Referring now to Figure 8, to define the XYZ coordinates of PW2dyn/ the point PW2 projected in real time with conveyor movement, it is necessary to solve the following equation:
ASToTAL = ASs + ASc (5) where ASTOTAL is the vectorial sum in three dimensional space of the two components #Ss + ASc. The ASc corresponds to movement of the static workpiece reference PW2 during the time of execution of the overall movement including the acceleration step 2, the constant velocity step 3, and the deceleration step 4. Thus,
ASTOTAL defines the manipulator tip movement from the point Pwi to the projected point PW2dyn with conveyor movement at the maximum conveyor velocity.The time of the step T5 and the maximum conveyor velocity Vc defines the quantity #Sc: ASc=Ts Vc (6) Solving equation (6), ASc equals (.6670053) (6) or 4.00203 inches. Substituting this value of ASc into equation five, for simplicity in the present example assume that the conveyor movement is directly aligned with the X axis corresponding to aTvector: ASTOTAL = ASS + i 4.00203 (7)
Equation (7) defines the total move from points Pw1 to PW2dyn. The teach assist computer 34 has stored the calculation of #Ss as follows: #Ss = i#Sx + z#Sy + k#Sz (8)
Thus, in vector notation, the coordinates of the translated and projected point PW2 dynamic can be written as follows::
PW2 dyn = Pw1 dyn + ASTOTAL (9)
Referring to the dynamic profile of Figure 5, the point PW2 at the start of the weld 2 step defines the XYZ coordinates that represent the manipulator position in the various controlled axes at #N4. The positional data in each of the coordinate axes may be obtained from the XYZ coordinates of the point PW2dyn through a transformation process as described in the aforementioned application Serial Nos. 721,805 and 625,932.The projected conveyor location corresponding to the point PW2dyn (ON4) at the start of the weld 2 is also defined as follows: ZDeN4 = zDeN1 + Ds (10) where BDeN4 is the projected conveyor location at point PW2 dynamic and #D#N1 is the projected conveyor
location previously calculated and stored by the teach assist computer 34 corresponding to the projected
point Pw1 (The point Pw1 may also be referred to as Pw1 dyn.).The term Ds corresponds to the conveyor
displacement in LSD's during the total time of the step Ts for the manipulator tip to move the distance ASToTAL. Thus, the term Ds is the projected conveyor movement in LSD's during the execution of the acceleration step, the constant velocity step, and the deceleration step and is defined as follows: D5 = T5 VCIA/LSD (11)
where A/LSD = .019563102 inches.
In the above example, the conveyor displacement D5 during the time T5 of execution of the total step is
calculated as .6670053 seconds times 6 inches per second equal to 4.0020318 inches or 204 conveyor LSD's
for the overall movement; 64 LSD's for each of the steps 2 and 4, and 76 LSD's for the constant velocity step
3. The number of LSD's for the constant velocity step 3 is calculated as D6N3=T = .2496613 = 76.56 or TLSD .0032605 76 LSD's. An interpolation interval code representing 64 interpolation intervals is assigned to this step; the
next lowest binary multiple of 16.The total number of LSD's for the overall movement is defined: D5 = D#N2 + D#N3 + D#N4 = T5 = ASc (12) TLSD A/LSD
where DeN2 is the number of LSD's for the acceleration step 2, D#N4 is the number of LSD's for the
deceleration step, TLSD is .0032605 seconds, the time to traverse one conveyor LSD at the maximum
conveyor velocity, and A/LSD denotes the positional change per LSD of the conveyor movement equal to .019563102 inches.
The projected conveyor displacement for each calculated step of the move in the program including the
weld steps is outputted for storage into the memory 16 along with the manipulator axes data as an absolute,
accumulated conveyor displacement in terms of the number of conveyor LSD's. For example, if the projected conveyor data # #D#N1 corresponding to the point ON1 was 1857 conveyor LSD's the number of displacement
units represented by the quantity D5 204 LSD's for example, is added to obtain ED0N4. Then # ZDeN4 = 204 + 1857 = 2061 LSD's. Similarly, #D#N2 is equal to 1857+64 or 1921. For #D#N3, the result is 1921+76=1997.It should be apparent that in equation (12) the ratio of time quantities and the ratio of distance quantities can
be equated since the time is calculated at maximum conveyor velocity and the distances are derived from
the execution times and correspond to the displacement of the conveyor at maximum conveyor velocities.
Further, knowing the real time, projected coordinates of the point PW2dyn or ON4 in manipulator axis joint
data and the corresponding projected conveyor position, the weld 2, step 5 can also be calculated. The
calculation of the end point #N5 of the weld 2 is performed by translating the manipulator coordinates of the
point PW2dyn to track this PW2dyn for a predetermined interval of time again based on a maximum conveyor
velocity to perform a weld. This results in the coordinates #N5 at the end of the weld 2 and a corresponding
projected conveyor position.
The next step in the simplified Cartesian predict method for a long step analysis is the computation of the
coordinates for each of the manipulator axes and the corresponding conveyor position for the points ON2 and ON3, referring to Figure 5. At this point, the coordinates of the points ON1, ON4 and ON5 are defined along
with the corresponding projected conveyor positions. Up to this point, the analysis has been performed with
Cartesian XYZ coordinates; the ON1, ON4, ON5 coordinate data being transformed into joint coordinate data
after calculation in the XYZ domain. The profile of Figure 5 describes manipulator tip movement in one
Cartesian component direction on the XYZ domain.The representation in Figure 8 describes a translation or
movement in Cartesian space.
Considering the calculation of the coordinates for the points ON2, ON3 and referring now additionally to
Figures 9 through ii, Figure 10 similarly to Figure 5 represents a manipulator axis velocity profile with
respect to time. Each axis is accurately described by the profile of Figure 10 according to a scaling factor.
Briefly, to summarize the overall velocity profile of Figure 10 for a long move analysis, step 1 corresponds to
the weld 1 performed with the manipulator tracking the point Pw1 on the workpiece. The weld 1 ends at ON
corresponding to Pwi. At this point, at the start of step 2, the velocity ramps up at a constant acceleration
during the time interval T1 from the point ON1 to the point ON2 corresponding to a transistion from the velocityON1 to 8 Ni! defining the slope in step 2. Instep 3 the manipulator moves in each of the joint axes at a
constant velocityO N3 during the TM time interval from the points 0 N2 to 0 N3.In step 4, each of the joint axes
decelerates from the velocityO N3 to a tracking velocity ON4 defining the point Pw2 the start of the we!d 2. The
manipulator during step 5, weld 2 at point PW2, tracks the point PW2 on the workpiece at the velocity N5 on
the point ON5.
Referring now to Figure 9, the accumulated position change in each joint axis is illustrated corresponding
to the points in the velocity profile of Figure 10. Thus, the position on the ordinate scale and the position
profile corresponds to the integral of the velocity profile of Figure 10. The position profile of Figure 9
describes the total positional change with respect to time of any joint axis as the manipulator tip moves
through the first weld, weld 1, the acceleration step 2, the constant velocity step 3, the deceleration step 4
and the weld step 5. Referring now to the acceleration profile of Figure 11, the acceleration is plotted versus
time and at any point is the differential of the velocity profile of Figure 10. During the weld 1, step 1, the
acceleration is approximately zero as the manipulator is tracking the conveyor to perform a weld at a nearly constantvelocityûN, to the point ON1. In step 2, the acceleration is constant from ON1 toO N2 to the point ON2.
At ON2, the acceleration returns to zero at the start of the constant velocity step 3. In step 4, each joint axis
decelerates from ON3 toO N4 to the point ON4. At û N4, the acceleration returns to approximately zero during the weld 2 step 5 to perform the weld through the point #N5.
Considering now the calculation of the coordinates of the points #N2 and ON3, the following equation is utilized to determine the total positional change A ON equal to #N4 - #N1 during the steps 2, 3 and 4 for each joint axis: AON-[0N4-ONl] = =
The various quantities in equation (13) as discussed hereinabove are identified in Figure 10. The quantities (g # and # correspond to the areas 2,3 and 4 identified in Figure 10 and are the positional change in the particular axis profile during the respective steps 2, 3 and 4.For example the first area (2) on the right hand side of equation (13) defines the area under the curve for step 2 in accordance with the principles of analytical geometry and graphic analysis. The composite area (2) during the step 2 interval from #N1 to ON2 is defined by the triangular area # and the rectangular area #. The overall composite area relationship is illustrated in the following equation (setting T1 = T2 in the simplified Cartesian predict analysis):
The triangular area of Qa is given by the formula for the area of a triangle; 1/2 the base times the height.The base of the triangle is T1 and the height of the triangle is#N2 -i.
Solving equation 13 for #N3 results in the following expression: #N3 = (#N4 - #N1) - (#N1 + #N5) T1 (15)
T1 + TM 2 T1 + TM
In examining equation 15, it can be seen that #N3 can be calculated for each of the axes from the above expression since the quantities #N1, #N4,#N1,#N5, T1 and TM are known quantities previously calculated and stored. The#N1 and then velocities are calculated from the respective end points in step 1 and step 5 for each of the welds knowing the time and positional change in each joint axis; for example = = ÛN5- ûN4, , where Tw is the time of the weld 2 step 5.
Tw
To complete the solution for EN2 and 0N3 the following equations are utilized to define these parameters in terms of the previously known and calculated quantities: #N2 = ÛN1 + T1 (#N2 +0N1) (16) #N3 = #N2 + #N3.TM (17)
Equations 16 and 17 are derived from similar graphical analysis and the areas discussed hereinbefore.
Thus, in accordance with the simplified Cartesian predict method, the velocity profile for minimum execution time to move between the point Pw1 and PW2 is calculated along with the welds 1 and 2. For the long move analysis, the calculated, real time projected positional data for each of the manipulator axes is recorded, #N2 (1-6), #N3(1-6), #N4 (1-6) and #N5(1-6).
In response to the teach operator moving the manipulator tip between the points Pw1 and PW2 on the static workpiece, the teach assist computer 34 in response to an input command to teach the next point, calculates the above positional data for each of the coordinate joint axes and defines a fixed path solution represented by the velocity profile in Figure 10 corresponding to the acceleration step 2, the constant velocity step 3, the deceleration step 4 and the weld step 5. The aforementioned calculated positional data is then loaded into the main control memory 16 for use by the on-line computation and control unit 18 to reconstruct the precomputed optimum fixed path solution during replay of the program in accordance with movement of the conveyor.The corresponding conveyor data as discussed hereinabove is also computed and formated for recording into the main control memory with the positional joint axis data points.
For example, considering the long move analysis example discussed hereinbefore, the following would be recorded into the memory 16:
Step Mode Data Interp. intervals Kv
WD
STEP 1 WELD 1 ÛN1(1-6); TDON1 (where 2N < WD < 2N+i) 2N
WD
STEP 2 CP (ACC=0) ON2(l.6), 2:D0N2 64 1
STEP 3 CP(ACC=0) ÛN3 (1-6). ED0N3 64 64/76
STEP 4 CP(ACC#0) #N4(1-6), #D#N4 64 1
WD
STEP 5 WELD 2 #N5(1-6), #D#N5 (where 2N < WD < 2N+1) 2N
WD where WD is the number of interpolation intervals assigned to a weld step.
The teach assist computer 34 in addition to calculating the above quantities also checks to insure that the maximum specified velocity in each joint axis is less than the specfic maximum for the particular manipulator apparatus such as + 3,000 BPS. Further, a check is also made to ensure that the accelerations commanded are within the specified limits such as less than + 2500 BPS A/64 LSD's or approximately + 12,500 BPS2.
It should be noted that all the above calculations are made utilizing maximum conveyor line speed to insure that the maximum velocities will not be exceeded and that the weld time will be suitable to perform acceptable welds even at maximum conveyor line speed. If the conveyor line speed varies below the maximum line speed, the actual execution times on-line to perform the precomputed fixed path solution will be longer relative to the calculated times. The precomputed dynamic profile discussed hereinabove is synchronized to conveyor advancement and also to conveyor velocity.
Therefore, the precomputations are optimized for maximum conveyor line speed. However, it can be seen that if the line velocity is considerably slower than the maximum line velocity, no significant overall loss of program optimization is involved. As the workpiece moves more slowly past the manipulator station at less than the maximum conveyor speed, the program is performed proportionately more slowly. However, the program is easily accomplished during the time the workpiece is within the range of the manipulator. Thus, it is insured that the manipulator will easily complete the precomputed fixed path solution in accordance with conveyor line speed and is compensated for line speed variations due to the synchronization.Further, in the on-line playback, the position, velocity and acceleration commands issued by the on-line computation and control unit 18 (as reconstructed from the data in the memory 16) are appropriately adjusted with respect to the actual conveyor velocity to insure optimum dynamic behavior of the manipulator.
In accordance with the above simplified Cartesian predict method, it should be noted that the calculations performed by the teach assist computer program maintain exact position and velocity integrity at the beginning and end of each of the acceleration, deceleration or constant velocity steps; i.e. linear algebra in the 0 domain is utilized to match the defined termination parameters. Thus, the absolute position accuracy between the end points of the various steps may depart somewhat from that projected or desired.
In accordance with the desired positional accuracy of the manipulator tip to be maintained between weld points, the magnitude of the position error may be checked by the teach assist computer 34. For example, higher positional accuracy may be required where collision problems are more severe or when the movement between points is large. Thus, when considering a long move analysis as described hereinbefore in connection with Figures 9 through ii, the positional error is calculated at the center of the constant velocity step 3 and compared to the projected position to determine the magnitude of the positional error.If the positional error is beyond a predetermined acceptable limit, such as plus or minus .5 inches in a particular embodiment, the constant velocity step 3 is redefined by the teach assist computer 34 into two or more constant velocity steps of appropriate scaled velocities. For example, if the positional error calculated is in the range of 1 to 2 times the desired maximum positional deviation, two constant velocity steps are used instead of step 3. Similarly, if two to three times the allowable error is detected, three steps are used as illustrated in Figure 6. For a range of three to four times the allowable error, four steps are used. In considering the above checking programs the velocity, acceleration and position, it should be noted that the off-line compute time and the complexity of the computer required are not critical. The operations are all performed off-line in the teaching mode and the computer is not required for on-line operation and is not dedicated to the manipulator apparatus. The off-line teach assist apparatus 30 is detachable and portable.
The following equations define the calculations performed by the teach assist computer 34 when it is desired to define two constant velocity steps 3a and 3b in lieu of the single step 3, (the constant velocities calculated are designated asEB, and 13b for the two steps 3a and 3b respectively, 0N3a defines the position between the steps 3a and 3b:: =2(#N3a-#N1)-#N1.T1 (18)
T1 + 2TM1
ON3b = 2(ON4 - ûN3a) -ÜN4 . T1 (19)
T1 + 2TM2
The details of the simplified Cartesian predict method performed by the off-line teach assist computer 34 for a short move analysis will now be considered, i.e. where the static distance on the workpiece ASs between two points Pwi and PW2 is less than 5 inches. The 5 inch maximum for a short move analysis and the transition point to a long move analysis is determined by calculating the maximum distance that can be traversed without exceeding the 24 inches per second VMA of the manipulator tip and with maximum acceleration and deceleration.This time T1 + T2 for the maximum short move as discussed hereinbefore is approximately .208672 x 2 = .417344 secs. at the maximum conveyor speed of 6 inches per second. This time corresponds to a conveyor displacement of 2 x 64 conveyor LSD's at the maximum conveyor line speed. In a specific embodiment where the lowest number of interpolation intervals assigned to a step is 16, the long move analysis may be utilized whenever the projected conveyor LSD's calculated for the overall step is greater than 144 (2 x 64 + 16) to thereby insure a minimum TM constant velocity step of 16 LSD's. For a step where the calculated number of LSD's is 144 or less, the short move analysis is utilized.
The short move analysis in the simplified Cartesian predict method proceeds similarly to the long move analysis discussed hereinbefore. However, since no constant velocity step is required, the calculations are simplified. The time required for the step Ts equals T1 + T2. In one arrangement, the time T5 for all short move steps is fixed for simplicity at.417344 seconds, 2(.20872 seconds), at the maximum conveyor line speed of 6 inches per second. Thus the ASc referring to Figure 8 is also fixed from equation 6 as T5 x V0 = 2(.208672 x (6 inches per second) = 2.50406 inches.The AS total for the step is similarly calculated according to equation (5) and the coordinates of the point PW2, referring to Figure 4, the start of the next weld ON3 are then found in XYZ coordinates from equation (9) in terms of the previous point data and the ASToTAL.
The corresponding conveyor position is also calculated by adding 128 conveyor LSD's to the previous conveyor location at ON1. Further, the weld step 2 is calculated to obtain the coordinates of the points ON4 and the corresponding conveyor location.All the coordinate data for the overall move of steps 1, 2,3 and 4 are now known including ON1, ON3 and ON4 and the time of the step T5. The only quantity remaining to be calculated is the end point of step 2 ON2 the transistion between the acceleration and deceleration steps 2 and 3, and the corresponding velocity0N2. The velocity ON2 is derived from the following equations by defining the areas as shown in Figure 4 similar to that in accordance with the long move analysis above in equations (13) through (15).
A 0N = ON3 - ON1 = l/2(üN2 +ONi) T1 + (#N2 + ûN3)Ta (20) 6N2 = (ON3- ON1)/T1 - V:ON1 - VN3 (21)
Equation (21) is a simplified form of equation 20. After obtaining ON2, ON2 is calculated from equation (16) as discussed in the long move analysis. Thus, for the short move analysis, the data recorded for steps 1, 2, 3 and 4 of Figure 4 are the same parameters recorded concerning the long move analysis in steps 1,2,4 and 5 of FigureS.
In an alternate arrangement, the short move analysis for a movement between points corresponding to 32-63 LSD's of conveyor movement may be calculated deriving T1 and T2 and assigning 32 interpolation intervals to each of the acceleration and deceleration steps. Those short move steps corresponding to less than 32 LSD's of conveyor movement are then assigned 32 interpolation intervals. However, the increase in execution time is very slight for these very short moves.
Thus, the simplified Cartesian predict or precomputation method described hereinbefore describes one calculation or precomputation program that may be utilized by the off-line teach assist computer 34 to project and precompute the fixed path solution in the off-line teaching mode from the statically entered teach data as the operator moves the manipulator tip over the taught points. While the aforementioned simplified Cartesian method provides accurate data for a spot welding program and has been found satisfactory for most work cycle applications of this type, it should be realized that other predict methods utilizing different calculation programs to define the dynamic profiles including welding steps, acceleration steps, constant velocity steps and deceleration steps are also possible where more precise program optimization is desired.
In this regard it should be realized that even the simplified Cartesian predict method provides a tremendous increase of the utilization of program execution time to execute the moves. Thus, precomputed fixed path solutions defining dynamic profiles for movement of the manipulator apparatus are calculated wherein the manipulator tip is accurately commanded to move in minimum execution time with minimum overshoot and settling time requirements. This is achieved by the commanded signals corresponding to a physically realizable command signal that the manipulator can accurately follow in calculated minimum time limited only by the maximum dynamics of the manipulator apparatus.
Other precomputation methods differ only in that they utilize more precise calculations to further optimize the minimum time calculations without exceeding the maximum dynamic parameters during real time execution.
For example, another precomputation method referred to as a simplified axis predict method (entitled thusly only for reference purposes) determines the minimum execution time based on the approximation of the dynamic movement for each axis of the manipulator. Next the resulting execution time for each axis is examined to determine the critical axis; i.e. the axis that requires the highest execution time is the critical axis and determines the time of the step. The simplified axis predict method then performs a check to insure that the dynamic capabilities of the manipulator are not exceeded. If the dynamic capabilities are exceeded, the simplified axis predict method recalculates the data to bring the dynamic parameter maximums within the acceptable dynamic limits.
Another predict method referred to as a modified axis predict method proceeds similarly to the simplified axis method but calculates the minimum execution time in a more precise fashion.
Referring now to Figure 7, one example of the detailed flow process steps and computations to implement the PASS #1 process block 116 and the PASS #2 process block 128 in accordance with the simplified axis predict method is illustrated in Figures 13 and 14 respectively. A diagrammatic representation of the computation points in any of the manipulator axes is illustrated in Figure 12.
The following definitions and relationship are useful in considering the operations described in the flow charts Figures 13 and 14 and the diagrammatic representation of Figure 12.
N represents the current point for which the precomputations of the fixed path solution are being performed, i.e. the move from N - 1 to N;
(22)
N-1 represents the previous point for which the precomputations have been performed to move to the point N-1;
(23)
/EN/CV represents the set of manipulator axis data in each of the controllable axes that defines the point N and that correspond to the projected conveyor position (CV) stored in the conveyor register i.e.CV is equivalent to the symbol ZD as discussed hereinbefore;
(24)
/TN/CV represents the Cartesian transform of the data/EN/CV at the point N with vector definition of the
manipulator hand of the manipulator e.g. the Cartesian coordinates of the point S in Figure 8 and the direction cosines in each coordinate axis for the vector segments RS and ST;
(25)
/EN/CV represents the set of manipulator axis data in each of the axes that defines the velocity of each axis at the point N corresponding to the projected conveyor position stored in the conveyor register;;
(26) EMIDl,E MID2,E MID2 represents the corresponding positions and velocities at the end points of the
middle constant velocity step for advance to the point N as illustrated in Figure 12. (27)
Considering now the basic calculations and operations performed for the simplified axis predict method
illustrated in Figures 13 and 14, reference is made to Figures 12a and 12b. In Figure 12a, the short move analysis is diagrammatically represented and in Figure 12b the long move analysis is diagrammatically
represented.
In the case of the short move analysis, Figure 12a, the following relationship describes the basis for
calculating the execution time for each manipulator axis:
A #Ns + A Odyn = ## 0TOTAL (28) where # #dyn = #Ns.2T1 and # #Ns = #Ns 043 #N-1. Thus, the total postional change ## #TOTAL for each
manipulator axes for the total move from point N-1 to point N is calculated by summing the portion # #dyn representing the tracking of the point N as the conveyor moves with projected motion during the time of the
move, T1 + T2 = 2T1 (assume T1 = T2) and the portion # #Ns representing the movement of the manipulator
between the points N-1 and N with the conveyor stopped at the position corresponding to #N-1; i.e. # #Ns represents the static positional change.The quantity ## # of equation (28) may be rewritten as follows: -E e = A #Ns +ON5.2T1 (29)
The quantity ot û is also defined from Figure 12a by calculating the trapezoidal areas denoted (3 and
Setting equations (29) and (30) equal to each other results in the following after simplification: # #Ns = T1 [2I3PK + -36Ns] (31)
The quantityEhS is the velocity of the axis if the manipulator were tracking the point N at the start of the overall move at the projected time that the manipulator is finishing the weld at point N-1.As seen by the sloped dotted line betweenûNs and0NF (exaggerated), the velocity is not constant and includes a slight acceleration or deceleration component.
Considering the peak velocity#PK, the following relationships define the quantity#PK, case I results when NPK - #N-1/#/#PK weld and case II results when /#PK - #Ns/ > /#PK Case 1, #PK1 = #N-1 + aMAX. T1 (32)
Case @@,#PK@@ =ONs + aMAx Ti (33)
Case II is illustrated in Figure 12a.Considering the Case II situation and substituting equation (33) into equation (31):
T12 + T1 [1 (#N-1 - #Ns)] - # #Ns = 0 (34)
2aMAx aMAX
Thus the quadratic equation (34) may be solved for T1 if the value of#Ns is known since the quantities aMAX, #N-1 and # #Ns are already known. The velocity #Ns is calculated by numerical differentiation techniques, i.e.
the velocity #Ns is calculated at two points a small distance on either side of the projected conveyor location corresponding to the point #N-1 and the slope is determined to yield ONs. The solutions of the term T1 for all the manipulator axes are then examined to determine the greatest T1 and thus the critical axis, i.e. the axis that determines the minimum execution time required for the movement from point N-1 to point N. This axis is the one that will move the fastest and accelerate at the maximum rate.
After determining the time of the overall move as 2T1, the simplified axis predict method proceeds as discussed hereinbefore in connection with the simplified Cartesian predict method.
The solution for Ti in the Case I situation is obtained by substituting equation (32) into equation (31):
T12+T1 [3 (#N-1 - #Ns)] - # #Ns = 0 (35)
2aMAX aMAX
In the equation (34) and (35), the following relationships define whether the value +aMAx or -aMAX is utilized:
use +aMAx, if > #N-1, Case I (36) if#PK > ONs Case II
use aMAx, if#PK < ONi, Case I (37) if#PK < #Ns, Case @@ Referring now to the long move analysis for the simplified axis predict method and referring now to Figure 12b, the following relationship is utilized: : # #dyn = #Ns (2T1 + TM) (38)
Substituting equation (38) into the basic relationship (28) yields: ## #TOTAL = # #Ns+#Ns (2T1+TM) (39)
The quantity #TOTAL is again defined in terms of the areas under the velocity profile of Figure 12b:
where the velocity #MAX is utilized in the long move analysis in lieu of the velocity #PK since the manipulator reaches #MAX.
Setting the equation (39) and (40) equal yields the following upon simplification: # #Ns = T1 (#MAX - 3/2#Ns + #N-1) + TM (#MAX-#Ns) (41)
The solution of T1 is organized into the following for Case I and Case II:
Case I, T1 = #MAX - #N-1 (42)
aMAX
Case II, T1 = #MAX - #Ns (43)
aMAX
The quantity TM is solved from the following relationship obtained by rearranging equation (41):: TM = T1 [3/2#Ns - #N-1 - #MAX] + # #Ns (44)
#MAX - #Ns #MAX - #Ns Equation (44) is then solved for TM to obtain the total movement time Ts for each axis by adding the quantity 2T1 to TM = Ts. As before, the greatest value of To among the manipulator axes defines the minimum execution time T5.
The details of the above long and short move analyses for the simplified joint predict method are illustrated in flow diagram form in Figures 13 and 14.
Considering now the modified axis predict method, the calculatios and the basic approach is similar to the simplified joint predict method except that the quantities T1 and T2 are not set equal. The following relationships define the approach to calculating T1 and T2 for the short move analysis:
T2 = K1 .T1 + K2 (45) K1 = [aMAX - # N] (46) [aMAX + # N] K2 = [#N-1 - #Ns] (47) aMAX + #N aT12 + bT1 + c = 0 z (48) Where:: (a) - @ @@@ N @@ N @1 @ @@@ N @1 - @@@MAX - @MAX @1 @ @@@MAX @1 @ (49)
(b) = [#Ns + #Ns K1 + # N K2 + # N K1 K2 - #(N-1)F - #(N-1)F K1 + a@@@@ K@ K@ - @@@@@ K@1 (50)
+ aMAx K1 K2 - aMAx K2] (50) (c) = [# #s +6Ns K2 + 1/29 N K22 -#(N-1)F K2 + 1/2aMAX K22] (51)
For the long move analysis, the following relationships are utilized:
T1 = [#MAX - #(N-1)F] (52)
aMAX
T2 = [#MAX - #Ns - # N (#MAX - #(N-1)F) - # N TM (53)
aMAX
aMAX + # N
Where:: T2 = K1 . TM + (54) K1=[-8 N] (55) aMAx +6 # N
T(1K2) = (T1 + K2) (57)
T(M1K1) = TM (1 + K1) (58)
(a)T2(M1K1) + (b)T(M1K1) + c = 0 (59)
(a) = [1/23 N + aMAx K12] (60) 2(1 + K1)2
(b) = [6Ns + 6 N T(1K2) - #MAX+ aMAX K1 K2] (61) (i+K1) (1+K1)
(c) = [# #s + #Ns T(1K2) + # N T2(1K2) - #(N-1)F T1 (62) - 6 MAX T1 - #MAX K2 + /2aMAX K22] The time of the overall move T5 = T1 + T2 + TM may then be solved for each axis to determine the axis requiring the greatest execution time. The quantity T(M1K1) is calculated and then TM is found from equation (58). The quantity T2 is then calculated from equation (54).
In accordance with other important aspects of the present invention, the teach-assist computer 34 is arranged to selectively calculate and project a predetermined twist sequence for the welding gun carried by the manipulator arm 11. The twist sequence in playback operation changes the orientation of the welding gun during the weld to reduce the probability of a weld gun stick wherein the welding gun tips stick or remain attached to the workpiece when the welding gun tips are programmed to open. The orientation change added by the twist sequence is in addition to any orientation change of the manipulator arm in accordance with the projected tracking of the weld point on the workpiece during the weld step.
The twist sequence in one specified embodiment programes a continuous twisting orientation of the welding gun in a first predetermined direction during each weld step and correspondingly programs a continuous twisting orientation in the opposite direction during the advance step before and after each weld step. A predetermined desired twist angle is determined in accordance with welding parameters and practice. For example and referring to Figure 8, a twist or change in orientation TW (in degrees) of the welding gun hand segment h4 (defined by points S and T) by suitable movement of the point R and with the h4 segment remaining fixed in position to accomplish a 10, orientation change for each one second of welding time is suitable to reduce the probability of a weld stick to the largest extent possible.Thus, for a typical .4 second welding step, TW equal to 4 change in orientation or twist of the h4 segment defined by the points S and T by appropriate movement of the point R on the manipulator arm is calculated by the teach assist computer over the weld step. Further, a 4 change in orientation of the h4 segment in the opposite direction is calculated during the advance steps between weld steps.
This is accomplished by calculating a +TW/2 twist orientation at the start of the weld step and a -TW/2 twist orientation at the end of the weld step. Thus, the welding gun during the advance steps between successive weld steps twists through a -TW/2 orientation to a +TW/2 orientation. During each weld step, the welding gun twists through a +TW/2 to a -TW/2 orientation relative to the static taught orientation.
For example, with the twist function active and referring to Figure 13A, the teach assist computer performs a modification of the /TN/ST transform data to add a +TW/2 factor. To accomplish this, a decision block is provided in the program flow after the CONVERT BLOCK adjacent the reference marker C. The decision block interrogates the input data from the terminal 36 and the teach controls to decide IS THIS CP WELD? and IS
TWIST FUNCTION ON? If the determination is NO, the program flow proceeds to the TRANSLATE block.If the determination is YES, the program flow proceeds from the decision block to a CALCULATE block to modify the /TN/ST transform data by adding the twist orientation factor +TW/2 to obtain the modified transform data /TN/sT+'2 Thus, in effect the data /TN/ST+TW/2 has been substituted for /TN/ST- The remaining program flow in Figure 1 3A through the reference marker F then proceeds to operate on the modified data in the identical manner as discussed hereinbefore but with the twist factor added. The calculated, projected end point at the end of the advance steps and the start of the next weld then includes the +TW/2 twist orientation factor.The end point of the advance steps after a weld step N-l as discussed herein before corresponds to the start of the weld step N.
Similarly and referring now to the blocks after the reference marker F, after the CP WELD? decision block, another decision block is provided intermediate the CP WELD? decision block and the GETTwAND GENERate /TN/CV+2T,42TW block. The added decision block performs the determination IS TWIST FUNCTION
ON? If the determination is NO, the program flow proceeds to the adjacent GET TW and GENERATE /TN/CV+2T1+TW block. If the determination is YES, the program flow proceeds to the CALCULATE block to modifythe/TN/sTtransform data to TTN/sT-TW/2. The program flow then proceeds to the GET TOW and
GENERATE/TN/CV+2T1+TW block.However, now the transform data/TN/ST-TW/2 is utilized to obtain the data /TN/-TW/2 CV+2T1+TW in the next block and succeeding portions of the program. Thus, the end of the weld step
N will include an orientation twist change of -TW/2 when the twist function is active.
In playback and in accordance with the data calculated during the teaching mode and stored in the memory 16, the welding gun is controlled to twist through an orientation from +TW/2 to -TW/2 between the end of each weld N-l and the beginning of the next weld N. Further, the welding gun is controlled during each weld to twist through an orientation from -TW/2 at the beginning of each weld step to +TW/2 at the end of each weld step.
In accordance with further important aspects of the present invention, a track alarm sequence is calculated- during the teaching mode and stored in the memory 16 for each weld step that is taught. In playback, the track alarm sequence is addressed for a respective weld step if a weld stick is detected a predetermined time interval ts after the end of a weld step. Thus, the manipulator memory 16 is jump-addressed to read out the track alarm sequence data corresponding to the weld step at which the weld stick is detected. Immediately after "stick" is detected in accordance with the track alarm sequence data calculated in the teaching mode and stored in the memory 16, the manipulator control apparatus outputs an external control signal to the conveyor control equipment to shut down the conveyor.The details of the track alarm sequence in playback will be discussed hereinafter.
The manipulator is then controlled in accordance with the track alarm sequence data rather than the normal work operation program to track the workpiece point at which the welding gun is stuck. The work operation program in accordance with the data in the memory 16 would typically command the manipulator arm to move to the next weld point in the predetermined sequence of the work operation program. If this occurred during a weld stick condition, damage to the workpiece and/or the manipulator apparatus could be possible.
In a specific embodiment, the manipulator control memory 16 includes 512 addressed steps or program locations each of which having associated therewith 8 data words (as further explained in detail hereinafter in connection with TABLE I). A typical work operation program is assigned the address locations 0 to 255; 256 program steps. Thus, a work operation program including 48 welds, three advance steps for each weld or 144 steps and various other manipulator control steps is provided by this arrangement. For example, a typical work operation program includes 30 weld steps. The address locations 256 to 447 (192 steps) are assigned to the track alarm steps with four track alarm steps being assigned to each weld, 48 times 4. Thus, the steps or address locations 256-259 are associated with the first weld, the steps 260-263 are associated with the second weld and so forth.
During the teaching mode, the teach-assist computer 34 translates the projected manipulator arm position and workpiece position of the end point of each weld to calculate the four track alarm steps associated with each weld step. In accordance with the number of the weld step in the overall work program operations including a predetermined sequence of welds, the teach-assistcomputer 34 assigns the address location of the four track alarm steps for recording into memory 16 as discussed hereinbefore. The first track alarm step of each four step track alarm sequence is calculated as a PTPC step.This is accomplished by the teach-assist computer 34 by projecting or translating the calculated manipulator arm position and workpiece position corresponding to the end of the weld point being taught The manipulator arm position and the workpiece position are translated in accordance with the projected workpiece displacement during a time interval equal to the sum of the time ts, the weld stick detect time in playback, plus a predetermined lead time At. Thus in playback, when a weld stick is detected at the time interval ts after the end of the weld step, the projected first track alarm step of the four step track alarm sequence will be addressed and utilized to command the arm to move to a point leading the arm by an amount equal to the projected distance moved by the workpiece in the time interval At; providing an advance tracking position.
The second, third and fourth track alarm steps of each track alarm sequence are programmed as CP (ACC=0) tracking steps to translate the manipulator arm position corresponding to the stick weld point in accordance with the projected workpiece movement. The steps are calculated utilizing 256 interpolation intervals and a Kv factor of 1/2 to provide the largest possible tracking time (512 conveyor LSD step length) before the conveyor is shut down. This four step track alarm sequence provides approximately 5 seconds of tracking time at a projected workpiece velocity of six inches per second. This corresponds to approximately 30 inches of conveyor travel during the track alarm sequence.
In all the track alarm steps of each track alarm sequence, an operate external data bit OX is programmed at a predetermined control bit location (one of the C1-C10 bits in the Group Data Format Table I) to control the shut down of the conveyor control equipment in playback.
In accordance with yet further important aspects of the present invention, a predetermined number of escape paths are taught and projected during the teach mode corresponding to a respective number of designated program escape steps in the work operation program. The taught escape paths are recorded into the control memory 16 and utilized in playback to withdraw the manipulator arm from the workpiece area upon the actuation of an escape control after the program step is reached corresponding to the next designated escape step. A withdrawal or escape of the manipulator arm may be required in the direction of an operator in the case of a workpiece conveyor malfunction or misalignment, obstruction in the workpiece area or undesirable behavior of the manipulator arm.
For example, in a specific embodiment eight escape paths are taught at eight respective program steps chosen by the teach operator. Each of the escape paths is assigned eight program steps or address locations in the 448-511 range of address locations. Typically, the eight escape paths are spaced approximately equally throughout the work operation program; for example every three to five welds to define escape zones.
In playback, after the escape control is actuated, and at the end of the next designated escape step in the program, the memory 16 is advanced or jump-addressed to the first escape path step in the escape path sequence corresponding to the designated escape step in the work operation program. The remaining seven escape path steps are then sequentially read out under the control of the manipulator control apparatus. The details of the escape path operation in playback will be described in detail hereinafter.
During the teaching mode, the operator selects a particular program step as a designated escape step by an input command to the terminal 36. The teach-assist computer 34 then programs an E/F escape flag in the data to be recorded in the control memory 16 to denote an escape flag data bitE/F when the data is read out in playback (bit position 15 of the Group 8 data in TABLE I). The teach operator at the designated escape step of the work operation program then proceeds to teach a series of escape path steps, eight if required, to teach a withdrawal of the manipulator arm from the projected position relative to the workpiece currently being taught in the work operation program.
As discussed herein before, the teach operator may advance the conveyor during the teaching of the escape path steps in accordance with the normal collision and foreseeability criteria if required. In a specific embodiment, the first escape path step is taught and programmed as PTPC step and the remaining escape path steps are taught as either PTPC steps or CP steps as will be explained in more detail hereinafter.
Considering now the on-line control apparatus 14 and referring to Figure 15, the encoder apparatus for each of the control axes of the manipulator and the conveyor encoder 32 are referred to generally at 500. The encoders for each of the axes and the conveyor encoder 32 each generate an output signal representing the respective axis or conveyor position on a multiple number of data lines referred to generally at 502 as discussed in more detail in application Serial Nos. 721,805 and 625,932.
The encoder output data 502 is connected to a scanner/register/converter stage 504 along with a group of system multiplex scan signals G2 through G8 referred to generally at 504.
An address and scan control stage 508 generates the multiplex group scan signals G1 through G8 by decoding a basic system clock signal. The signals GCO-2 are also generated by the address and scan control stage and represent the group multiplex scan intervals as a 3 bit coded signal. Each of the multiplex group scan interval signals Gn, n = 1 through 8, is active during a respective sequential scan interval in each of the repetitive group scan cycies. Reference may be made to the aforementioned application Serial Nos. 721,805 and 625,932 for a discussion of the group multiplex scan signals and the general operation of manipulator control apparatus of this general type.
The entire on-line control apparatus 14 is synchronized to the basic system clock and the group multiplex scan signals G1 through G8. Referring now to Figure 17, the timing control stage 512 divides the basic system clock frequency and thus each of the multiplex scan signals Gn into 32 program time intervals according to the signal W0. The signal Wldo is 32 times the frequency of the basic system clock. The signal W0 and the multiplex group scan signals Gn are utilized to generate the synchronous timing signals for the overall manipulator control circuitry as will be discussed in more detail hereinafter.
The scanner/register/converter stage 504 produces a multiplexed data output En to a data select stage 506.
Thus the encoder data for each of the axes and the conveyor are multiplexed and outputted to the data select stage 506 during a respective multiplex scan interval of the multiplex group scan signals G2 through G8.
The data generated by the off-line teach apparatus 30 during the off-line teaching mode is outputted on a data bus referred to generally at ZEn. The data bus ZEn is connected to a second input of the data select stage 506. The data select stage 506 outputs either the En data or the ZEn data determined by a data select input
ZTT and a Request Encoder Data timing signal RBFE onto a main system data bus referred to generally at
EDn. Thus, in the off-line teaching mode, when data is to be inputted from the off-line teach apparatus 30 to either the main control memory 16 or to other control apparatus of the manipulator via the EDn bus, the ZTT data select signal is active to select the ZEn data input. The ZEn data is generated by the off-line apparatus 30 and arranged in the same multiplex format as the En and the EDn data. The RBFE timing signal is generated by the timing control stage 512. The RBFE timing signal is active during the ninth through eleventh program time intervals of the W0 signal in each of the scan intervals G2 through G8 to output the data from the data select stage 506 to the EDn bus.
The memory 16 reads out or writes in data by address location and the memory address is controlled by an address data bus signal ACn. The address data bus signal is generated by the address and scan control stage 508. The read and write modes of the memory 16 are controlled by a Memory Interrogate Timing signal WCB and a mode signal WMC generated by the timing control stage 52. The WCB timing signal (Figure 17) is active during the second program time interval to read data out of the memory 16 onto a data bus Dn. The
WCB timing signal also is active during the tenth program time interval to write data into memory from the
EDn data bus with the presence of the WMC mode signal during the off-line teaching mode.
The Dn data bus is connected to a data selector stage 510 that includes a buffer for transfer of the data read out of the memory 16 during the second program time interval. The data selector stage 510 is controlled by a
Request Memory Data timing signal RBFD generated by the timing control stage during the second and third program time intervals. Thus, the data read out of the memory 16 onto the data bus Dn during the second and third program time intervals is also transferred thru the buffer to the data select stage 510, and outputted to the EDn data bus during the second and third program time intervals.
Considering now the data format of the various data buses and the memory 16, TABLE I illustrates one particular data format: TABLE I
MODE 6 5
PTP 0 0
BIT PTPC 0 1
CP 1 0
GROUP 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 CPW 1 1 1 CONTROL TK2 TK1 C1 C2 C3 C4 K2 ACC3 ACC2 M2 M1 E/P N3 N2 N1 N 3 2 1 2 CONVEYOR TK4 TK3 E13 E12 E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 16 0 0 0 3 SWIVEL TK6 TK5 E13 E12 E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 32 0 0 1 4 ROTARY E15 E14 E13 E12 E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 64 0 1 0 5 BEND C5 C6 E13 E12 E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 128 0 1 1 6 UP-DOWN C7 C8 E13 E12 E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 256 1 0 0 7 YAW C9 C10 E13 E12 E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 32ACC 1 0 1 8 IN-OUT E/F C11 C12 E12 E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 64ACC 1 1 0 The fifteen columns, referred to as bits and numbered one through fifteen, each identify a respective data bit position and data line. For example, the data on the buses EDn, Dn, En and each of the encoder outputs at 502 is arranged in a binary data format on fifteen data lines. The group column identifying the eight numbered rows refer to the multiplex scan interval sequence. Thus, during the first group multiplex scan interval G1, the row of data labeled CONTROL is presented on the fifteen line Dn data bus from the memory 16. Similarly the second through eighth rows are present on the data buses having the multiplex group scan intervals G2 through G8.
The encoders for the respective manipulator control axes in the third through eighth rows output the indicated positional representation data for the respective axes at 502. The swivel, bend, up-down, and yaw axes each include an encoder output having thirteen digital bits of positional information. The rotary axis includes a fifteen bit output and the in-out axis includes a twelve bit output. The conveyor encoder 32 generates a thirteen bit output representing the conveyor position. The encoder output bits are referred to as
El through E13. For example, the control data group readout of memory during the G1 scan interval includes two mode bits M1 and M2 at locations 5 and 6. These two bits are decoded as shown in the insert table to
Table I for the various operational modes discussed hereinbefore.The 1,2 and 3 bit positions of the Control
Group 1 includethecoded bits N1, N2and N3. The bits N1, N2and N3 representthe number of interpolation intervals assigned to the particular step. The 14 and 15 bit positions during the G1, G2 and G3 scan intervals include the TK1 -TK6 coded data bits to define the velocity constant Kv. The coded interpolation interval bit
N3 is also utilized when a CP mode is decoded from the M1 and M2 bits to determine whether the step is a
CP(ACC=0) or a CP(ACC*0) step. A-"one" in the N3 bit position during a decoded CP step denotes an acceleration step CP(ACC*0) if the N1 and N2 bits are not both "zero".The 4 bit position in the control group 1 is an E/P bit that is decoded to signal an end of program step.
The on-line control apparatus 14 includes an arithmetic computer and processor stage 514 that performs the computations as discussed hereinbefore in connection with the on-line computations and control unit 18.
The arithmetic computer and processor stage 514 includes a processor program memory 516 which has stored therein a formatted addressable series of program data words or control words. In a specific preferred embodiment, the control words include 16 data bit lines to address and control the functions of an arithmetic unit 518 of the arithmetic computer and processor unit 514. The control word data bus is referred to generally at 520. The specific format and control arrangement of the control word outputted on data bus 520 is discussed in more detail hereinafter in connection with the Table II and the details of the arithmetic computer and processor unit 514 of Figure 16.
In a specific preferred embodiment, the processor program memory 516 includes stored therein a sequence program of 32 control words each having 16 bits and sequentially addressed by the W1 through W5 timing signals. Each sequence of 32 control words defines a specific operational mode as will be discussed in more detail in connection with Tables V and VI.
The processor program memory stage 516 includes five address signals W1 through W5. The W1 through W5 address signals are controlled by the timing control signals W1 through W5 respectively (Figure 17). The W1 through W5 timing signals are generated by the timing control stage 512. The W1 through W5 timing signals are obtained at the respective divide by 2, 4, 8, 16 and 32 outputs of a divide by 32 counter.In addition to the W1 through W5 address signals, the processor program memory stage 516 also includes a three bit program mode address bus 522, AP5-7, to select the specified program mode or sequence. The program address signals AP5-7 are encoded from various coded signals as will be explained in detail hereinafter.
Thus, the processor program memory 516 includes an eight-bit address, three program mode address signals on data bus 522 and five program address signals W1 through W5. For a particular program sequence selected on the program mode address bus 522, the 32 control words associated with the selected program mode are sequentially addressed by the timing data on the lines W1 through W5. The program mode address AP5-7 on data bus 522 remains constant during the sequential output of the 32 control words.
In a preferred embodiment, the arithmetic unit 518 includes a number of logic elements each of which is controlled by predetermined data bits of the control word on bus 520.
The EDn data bus is a bi-directional data bus with the directional state determined by the various timing signals discussed hereinbefore. The EDn data bus is connected to the arithmetic unit 518 and is also connected to an interpolation timing and mode decoding stage 530.
The interpolation timing and mode decoding stage 530 includes a mode decoder/encoder stage 532. The mode decoder/encoder stage 532 encodes the program address signals AP5-7 on the program mode address bus 522. The mode decoder/encoder stage 532 also decodes the playback mode signals PTPC, PTP, CP and
CPW from the mode bits M1 and M2 on the EDn bus during the G1 scan time interval. A TEACH signal, an initialization signal, INITIL., an end of CP step signal ES, and an acceleration mode signal, ACL, are utilized as input signals by the mode decoder/encoder stage in addition to the mode bits M1 and M2 to generate the AP5-7 program mode address signals. The following AP5-7 program mode address signals are encoded on the data bus 522 in accordance with the inputs to the mode decoder/encoder stage 532:
Mode AP 7 6 5 TEACH-INITIALIZE (TOP) 0 0 0
TEACH 0 0 1
PTP 0 1 0
ES (End of Interpolation Step) 0 1 1 CP (ACC=0) 1 0 0 CP(ACCi0) 1 0 1
The ACL signal is decoded by an interpolation interval number decoder stage 534. The ACL signal is decoded and generated when the interpolation interval coded bits N3, N2 and N1 are a "101" or a "110". As discussed hereinbefore, these codes represent a CP(ACCi0) mode, an acceleration step.The interpolation interval number decoder stage 534 also decodes the information in the N3, N2 and N1 coded bits during the G1 scan interval to output the number of interpolation intervals assigned and coded for the particular program address step. In a specific embodiment, there are five predetermined number of interpolation intervals assigned to a particular step. The interpolation interval number decoder stage 534 generates a signal on one of five outputs 16,32, 64, 128 or 256 in accordance with the information coded in the N3, N2 and N1 bits as shown in Table 1.
An N(2) decoder stage 536 is provided to output the three data bits N3, N2 and N1 at a data bus 538 when a
D2, divide by 2, input control signal is a low logic state. When the D2 control signal is a high logic level, the
N(2) decoder 536 outputs the incremented N3, N2 and N1 code by adding a "1" to the inputted code. The D2 control input is a predetermined line or data bit of the 16 bit control word of the data bus 520. The data bus 538 is connected to the Arithmetic Unit 518. The Kv constant is decoded from the TK1 - TK6 data bits during the G1, G2 and G3 multiplex scan intervals by a Kv velocity constant decoder stage 540. The Kv velocity constant decoder stage 540 generates a digital output on a data bus 542.The velocity constant data bus 542 is connected to one input of a data select stage 550. The second input 552 to the data select stage 550 represents the quantity m, the output state of an interpolation counter 554. The operation and structure of the interpolation counter 554 is explained in more detail in the aforementioned application serial Nos.
721,805 and 625,932.
The quantity m, represents the interpolation interval currently being generated in the series of assigned number of interpolation intervals. The data select stage 550 is controlled by the logic state of a data select signal DATA SEL. The data select signal DATA SEL is connected to a predetermined data bit of the control word on the data bus 520. An output enable data line E/D is connected to the data select stage 550. The data select stage 550 outputs the data from data bus 542 or data bus 552 on an output data bus EXT B dependent upon the logic state of the DATA SEL signal and the E/D signal. The data bus EXT B is connected to the arithmetic unit 518. In a specific embodiment, the EXT B bus is expanded from the 8 bit input on the buses 542 and 552 to a 15 bit output.Thus, the data select stage 550 includes a logic array to hold the number of expanded, unused data lines to a zero logic state when the EXT B data bus is active to output data as determined by the E/D control line from the control word bus 520.
The interpolation counter 554 in a specific embodiment is a divide by 256 counter with 9 binary state outputs determining the number m of the current interpolation interval on data bus 552. The output state m on the data bus 552 is also connected to an end of step detector 556. The number of interpolation interval signals, the 16, 32, 64, 128 and 256 outputs of the interpolation interval number decoder 534 are connected to a second data input of the end of step detector stage 556. The end of step detector 556 includes a logic gate array as described in more detail in the aforementioned application Serial No. 721,805 to output an end of step signal ES when the output state of the data bus 552 representing the interpolation number m corresponds to the number of decoded interpolation intervals assigned to the current step.The interpolation counter 554 is reset a predetermined period of time after the end of step detector 556 detects an equality and generates an ES signal.
The interpolation counter 554 is advanced in count by a signal CVTC representing a conveyor coincidence signal. The conveyor coincidence signal CVTC is generated by a conveyor synchronization control stage 560.
The conveyor synchronization control stage 560 is implemented by a number of logic gates and memory elements as further described in the aforementioned application Serial No. 721,805. The conveyor synchronization control stage 560 generates a CVTC conveyor coincidence signal in accordance with the P and M signal inputs from a comparator and D/A converter stage 564.
The comparator and D/A converter stage 564 compares the present conveyor output signal from the arithmetic unit 518 in the CP mode on the EDn bus (or as read out of the memory 16 in a PTP or PTPC mode) with the conveyor encoder data generated by the conveyor encoder 32 in the G2 conveyor scan interval.
When coincidence is detected by the comparator and D/A converter stage 564, the P and M signal lines are both a low logic stage enabling the conveyor synchronization control stage 560 to generate a CVTC conveyor coincidence signal to the interpolation counter 554. The CVTC signal advances the output 552 of the interpolation counter 554 by one binary state. Thus the quantity m is advanced by one binary number. The conveyor synchronization control stage 560 is enabled during the S2 time interval (Figure 17) art a predetermined point during the G2 scan interval.
The comparator and D/A converter stage 564 includes a buffer register stage that is loaded each scan interval Gn with the respective encoder data during the ninth through eleventh program timing intervals and latched during the eleventh program timing interval by an ECLK timing signal generated by the timing control stage 512. The position command signals generated by the arithmetic/processor unit 514 during each scan interval Gn are outputted on the EDn data bus during the 23rd program timing interval by a timing signal POSC generated by the timing control stage 512. The comparator and D/A converter stage 564 compares the respective positional command signals and the encoder signals during a command sample interval during the 24 through 32 program time intervals during each scan interval Gn.The comparator and
D/A converter stage 554 also includes a D/A converter operating on a multiplex basis. The multiplexed analog output EER of the D/A converter 564 represents the analog result of the digital data comparis6n performed during each scan interval Gn. The multiplexed analog output EER of the D/A converter 564 is connected to six servo loop control stages one for each axis. For simplicity only the rotary servo loop control stage 580 is shown in Figure 15. However, it should be realized that there are six such control stages.
The servo loop control stage 580 includes an acceleration command input signal ACC-4 COM and a velocity command signal input VEL-4 COM. The ACC-4 COM and the VEL-4 COM signals are generated by a velocity/acceleration command stage 582. There are six such velocity/acceleration commands demultiplexed and generated by the stage 582, one for each of the axes. The velocity/acceleration command stage 582 generates the ACC COM signals and the VEL COM signals from the data outputted to the EDn output bus from the arithmetic computer and processor unit 514.
The EDn data bus during the 12th program timing interval of Gn scan interval (G4for rotary) represents the acceleration command signal in digital form generated by the arithmetic unit 518. The
EDn data bus during the 15th program timing interval represents the velocity command generated by the arithmetic unit 518. The EDn data bus is connected to the input of an acceleration register 584 and to the input of a velocity register 586. The acceleration register stage 584 is controlled by an ACLK acceleration timing signal generated during the 12th program timing interval by the timing control stage 512. The velocity register stage 586 is controlled by a VCLK timing signal generated during the 15th program timing interval by the timing control stage 512.The buffered output of the acceleration register 584 is connected to a multiplying D/A cdnverter similar to the type described in the aforementioned application Serial No. 721,805.
The multiplying reference input to the D/A converter 588 is connected to the output of a scaler stage 590 that scales a conveyor tachometer input signal CVTK. The CVTK signal is generated by a conveyor tachometer included in a sensor/transducer stage referred to generally at 592. The CVTK signal is scaled by a factor to represent correct acceleration units, for example performing an x square function.
Similarly, the velocity register 586 is connected to a D/A converter 594 including the CVTK conveyor tachometer signal as a multiplying reference input. The D/A converters 588 and 594 are controlled to update the analog outputs by the Sn timing signal. Thus, the D/A converters 588 and 594 include respective, dedicated sample and hold stages for each of the six controlled axes and output a respective analog representation ACC COM and VEL COM of the digital command signals on the EDn bus in accordance with the present conveyor speed. Atiming stage 596 is connected to the Sn timing signals to produce a delayed
Sn" timing signal for use by the rotary servo loop control stage 580 and other axes to insure the output of an unambiquous, stable ACC COM signal and a VEL COM signal before the EER, ACC COM and VEL COM signals are combined by the rotary servo loop control stage 580 and the other stages.
The rotary servo loop control stage 580, includes a loop combiner 606 having a VEL COM signal as one input. A second input 608 to the loop combiner 606 is generated at the output of a constant and differentiator stage 610. The input ofthe stage 610 is connected to the multiplexed and EER positional error signal. The stage 610 includes a sample and hold circuit to demultiplexthe EER-4 positional error signal as controlled by the timing signal S4". The constant and differentiator stage 610 provides an appropriate loop scaling constant and a differentiatorfunction. Athird input 612 to the loop combiner 606 is generated at the output of a constant and differentiator stage 614. The input to the constant differentiator stage 614 is a velocity feedback signal FELF-4 from the rotary axis.An appropriate respective velocity feedback signal VELF-n is provided for each of the other five controlled axes. The output 616 of the combiner 606 is connected through a loop constant and scaling stage 618 to the input 620 of a second loop combiner 622.
The acceleration command signal ACC COM is connected through an inertia scaling stage 624 where required as determined by the acceleration feedback signal. The output of the inertia scaling stage 624 is connected to a second input 626 of the second loop combiner 622. An acceleration feedback signal ACC-4 is connected to a third input 628 of the servo loop combiner 622. The output 629 of the second loop combiner 622 represents the composite acceleration, velocity, and position servo loop command signal connected to the servo valve stage 600.
The acceleration feedback signal ACLF may be obtained either by an accelerometer or by differentiating the VELF feedback signal as further discussed in copending application Serial No.732,977.
To detect a weld gun stick during playback, the sensor/transducer stage 592 provides a detector signal output STK. The detector signal STK is generated by a sensor device a microswitch for example, connected to sense the position of the welding gun tips. For example if only one of the tips of the welding gun, as diagrammatically illustrated in Figure 8, is movable to accomplish a weld at the point T and the other weld tip is fixed, then the sensor device is arranged to be actuated by the movable tip. If both tips of the welding gun are movable to accomplish a weld, then a sensor is provided on one or both of the tips.
When a weld is to be performed as determined by the data read out of the memory 16, the mode signal
CPW and a predetermined number of the control bits C1-C10 are utilized as external control data bits OXto control the welding equipment and to close the welding tips of the welding gun. The CPW signal is active or a "high" data level during the weld step and returns to a "low" data level at the end of the weld.
The STK sensor signal is utilized to detect the weld tips sticking (not opening) after the end of a weld step when the welding tips have been commanded to open and the CPW signal is a "low" level. Typically, at this time in the work operation program, the manipulator arm in accordance with the stored data is commanded to move to the next weld point in the predetermined program sequence, steps 0-255, to accomplish the next programmed weld step. However, if a weld gun stick is detected by interrogation of the STK signal at a predetermined time interval ts after the end of the CPW weld step, the track alarm sequence in the memory 16 as discussed hereinbefore will be addressed.The manipulator control apparatus in accordance with the track alarm sequence data controls the manipulator arm 11 to continuously track the weld point at which the weld was just completed rather than attempting to move to the next programmed weld point thus avoiding damage to the workpiece and/or the manipulator arm. In alternate arrangements, various sensor devices are arranged to detect a weld stick condition other than by the position of the weld tips; e.g. by the continuity of the welding tips.
The weld stick detecting signal STK and the CPW welding mode signal are utilized by a track alarm/escape address control stage 630 to control the addressing of the memory 16 to read out the predetermined track alarm sequence corresponding to the weld point at which a weld stick is detected.
The track alarm/escape address control stage 630 includes a track alarm latch 631 that utilizes the STK signal and an interrogate timing signal CHKto generate a weld stick latched signal STKL at 632. The interrogate timing signal CHK is generated at the output of a timer 633 a predetermined time interval ts after the falling edge of the CPW signal (high to low transistion). Thus, the timing signal CHK is generated a time interval ts after the end of the current weld step. The track alarm latch 631 is set to output a stick latched signal STKL at 632 if a weld gun stick is detected (denoted by the STK signal) a time interval ts after the end of the current weld step.
A time interval of approximately 100 msec. forts has been found suitable to allow adequate time for the welding gun tips to properly open after the end of the weld step if a stick condition is not present. The ts time interval provides adequate time for the manipulator arm to attempt to break the weld stick condition during the first 100 msec. interval of the advance step after the weld step.
The CHK interrogate timing signal is also connected to a CH K control stage 634 to generate a CHKP control pulse during the S8 timing signal interval. The CHKP timing signal is connected to advance the state of a track alarm sequence counter 635 on the falling edge of the CHKP signal. The track alarm sequence counter 635 is initialized at the start of the work program operation to a zero state and counts up to a digital state of 47 in accordance with the completion of the weld steps.
For example, after the completion of the first weld step in the work operation program and the time interval ts, the track alarm sequence counter 634 is advanced to a one state on the falling edge of the CHKP signal. The track alarm sequence counter 634 provides a digital output signal TAn that is connected as an address signal to an external address preset stage 636. The STKL signal is also connected to the external address preset stage 636 as a data select signal. The external address preset stage 636 outputs a digital address counter signal An on a predetermined number of data address control lines, ten in a specific embodiment to control 29 or 512 address locations. The An address counter data is utilized to preset the presetable address counter in the address/scan control stage 508.The presetable address counter as discussed herein before and as described in more detail in the aforementioned application Serial Nos.
721,805 and 625,932 generates the address data bus signal ACn that addresses the program step address location of the memory 16.
In accordance with the specific address location and program step assignment discussed hereinbefore, the track alarm sequence steps are arranged at the address locations 256 to 447 in sequences of four steps for each weld step of the program. The first track alarm sequence corresponds to the first weld step and is programmed in the 256 to 259 address location. Accordingly, the external address preset stage 636 is arranged to output a digital An address signal representing step 256 when the track alarm counter output
TAn is a zero corresponding to the first weld.
Similarly, as the track alarm counter 635 is advanced after the completion of the first weld step to increment the output TAn by one digital state to a one, the output An of the external address preset stage 636 outputs a digital signal corresponding to 260. The program step 260 is the address location of the first track alarm step of the track alarm sequence for the second weld step. Similarly, as the track alarm counter advances to the second, third and fourth states after the second, third and fourth weld steps respectively, the
An output is set to digital states corresponding to 264,268 and 272 respectively.
The memory 16 is reset by a CVAR reset signal generated on the rising edge of the CHKP signal when a weld stick is detected. The CVAR signal is generated at the output of a 2 input NAND gate 637. The inputs to the NAND gate 637 are connected to the CHKP signal of the CHK control stage 634 and the STKL signal of the track alarm latch 631. For example, if a weld stick is detected at the end of the first weld step, after the time interval ts and before the track alarm counter 635 is advanced to the one state, the CVAR signal resets the memory 16 through memory control logic in the address/scan control stage 508 and the An signal presets the presettable address counter to 256. After the teach alarm counter 635 is advanced to the one state, the presettable address counter does not respond to the An data.
The second, third and fourth track alarm sequence steps, for example steps 257, 258 and 259 for a weld stick after the first weld step, are read out of the memory 16 in accordance with the manipulator control apparatus discussed hereinbefore. A WSP step advance signal is generated in accordance with the completion of a program step. The WSP signal is generated by the address/scan control stage 508 in response to a TC signal from the TC latch stage 604 for a PTP step or an ES signal from the end of step detector 556 for the PTPC, CP and CPW steps.
All track alarm steps as discussed hereinbefore include an operate external control data bit that is read out of the memory 16 and utilized by the conveyor control equipment to terminate operation of the conveyor.
The track alarm/escape address control stage 630 also includes the control arrangements to address the escape path sequences discussed hereinbefore in connection with the teaching mode.
An escape control stage 638 is provided to generate an output 639 when an operator personnel or supervisor actuates a manual escape control provided on the control panel of the manipulator apparatus.
The escape control output signal at 639 is connected to the input of an escape control latch 640. The escape control latch 640 is set upon generation of the escape control signal at 639 and generates an escape control latched signal at 641 to one input of an escape latch 642. The escape latch 642 includes a second input at 643 from an escape advance stage 644. The escape advance stage 644 includes the S8 timing signal and the D15 data bit line of the EDN data bus as inputs. The D15 (see TABLE 1) data bit position includes the E/F escape flag control bit to denote or mark an escape step as discussed hereinbefore.
The escape advance stage 644 generates an output at 643 to the escape latch 642 during the S8 timing interval upon detection of the E/F escape flag data bit. The escape latch 642 generates an ECPL escape latch signal upon the inputs at 643 and 641 being active. This condition corresponds to an escape flag step being detected and the escape control being actuated. The ECPL signal is connected to the external address preset stage 636 as an escape address data control signal. The output 643 of the escape advance stage 644 is also connected to the count or clock input of an escape counter 645.
The escape counter 645 is arranged to generate a digital output EAn representing the number of the escape step. In the specific embodiment discussed hereinbefore, there are eight escape steps arranged in the normal program steps 0-255 and thus the escape counter 645 is an eight state counter. The escape counter 645 is advanced on the falling edge of the escape advance signal at 643. The falling edge of the signal at 643 occurs at the end of the designated escape step being detected. Thus, the escape counter output EAn is a zero during the first designated escape step and advances to a one at the end of the first escape step.
The external address preset stage 636 is arranged to output an An signal representing the program step 448 when the ECPL signal is active and when the EAn output is a zero corresponding to the first designated or programmed escape step. When the EAn output is a one, the An signal represents the program step 456.
Similarly, for the third through eight designated (E/F) escape steps, the An output is incremented by a factor of eight steps to address the appropriate first escape path step of the respective escape path sequences taught and recorded into the memory 16 during the teaching mode.
The ECPL signal is connected to one input of a two input NAND gate 647. The second input of the gate 647 is connected to the WSP step advance signal. The output of the gate 647 is connected to the CVAR memory reset signal. Thus, the memory 16 is reset at the end of the designated escape path step being detected assumming that the manual escape control has been actuated. The An signal presets the address counter of the address/scan control stage 508 to the first escape path step of the escape path sequence corresponding to the designated escape step that is currently being detected.
Briefly, and as discussed hereinbefore, if the manual escape control has been actuated, the memory 16 is preset or advanced to the first step of the appropriate escape path sequence when the next designated escape step in the normal work operation program including an E/F data bit is detected.
Considering a specific example, assume that the first designated escape step in the work operation program is step 25 for example and the second designated escape step is 50. If the manual escape control in the escape control stage 638 is actuated at any work operation program time during the playback of the steps 26 to 50, the memory 16 will be preset or jump-addressed to the first escape path step 456 of the second escape path sequence at the end of step 50, the second designated escape step. Once the escape path sequence is commenced, the taught escape path will be performed in accordance with the manipulator control apparatus and sequentially advanced step by step throughout the eight escape path steps as taught to withdraw the manipulator arm.
Considering now the details of the timing control stage 512, the arithmetic unit 518 and the processor program memory stage 516 and referring to Figure 16, the clock stage 650 generates the W30 clock signal.
The W0 signal is connected to drive a program address counter 652 of the timing control stage 512. The counter 652 is arranged to divide the W0 signal by 32. The W1 through W5 program address timing signals are connected to the divide by 2,4,8, 16 and 32 outputs of the program address counter 652. A phase generator 654 of the timing control stage 512 is connected to the WOO output of the clock 650 and generates a Plo phase clock signal and a 1 phase clock signal. The IZlo and ml phase signals are each generated once each period of the W0 clock signal and in alternating phase relationships. The 0and and All signals are connected to the processor program memory stage 516 as timing signals to allow the processor program memory stage 516 to output two different 16 bit control words to the aritmetic unit 518 within the time duration of each of the 32 program steps.
The processor program memory stage 516 includes a program memory 660 addressed by the mode address bus 522 and the program interval timing signals W1 through W5 as explained hereinbefore. The program memory 660 in a preferred embodiment is a programmable read only memory (PROM) of the type for example including 512 address locations each of which has associated therewith 16 bits of data representing a 16 bit control word. Thus the 8 bit program memory address, including the three bit mode address bus 522 and the 5 bit W1 through W5 address bus defines a particular 16-bit control word location of the 512 address locations in the program memory 660. The particular 16-bit control word that is addressed is outputted on the data bus 662 on 16 respective data lines.The data output bus 662 of the program memory 660 is connected to an instruction decoder stage 664. The instruction decoder stage 664 includes the Ido and 1 phase clock signals to modify the data state of a predetermined number of the 16 data lines at 662 or the pass the 16 data lines at 662 unchanged. Thus, the instruction decoder stage 664 provides two control words at data bus 520 under the selective control of the 37 and mo phase clock signals when two operations are to be performed by the arithmetic unit for a particular address location.
In a specific embodiment, the instruction decoder stage 664 is implemented by a number of logic gates connected to predetermined data lines of the 16 bit output 662 to invert the logic states on the predetermined data lines during the mo program interval versus the 1 program intervals.
The arithmetic unit 518 is programmed by the 16 bit control word on the data control bus 520 and the data on the bus 538 to perform a particular arithmetic operation. The data format of the arithmetic unit 518 includes a random access data memory 666 that is utilized for the storage of the data utilized during the calculations performed by the arithmetic unit 518.
Referring to TABLE II, the 16 bit control word data format controls the mode of operation of the random access data memory 666 in the control word bit positions 4 and 5. Thus the 4 and 5 data lines of the control word bus 520 are connected to the control inputs of the random access memory. The digital state of the control word in bit position 4 is an enable control and the bit position 5 controls the read/write mode of the random access memory 666. The memory locations of the random access data memory 666 are addressed by the 1, 2 and 3 bit positions of the control word on the data bus 520 as indicated in TABLE II. The random access data memory 666 is capable of storing at least 16 bits of data (16 bit wide format) at 64 separate address locations.Additional addressing of the memory locations of the random access data memory 666 is provided by the GCO-GC2 multiplex scan coded lines to address a specific memory location for each of the multiplex scan intervals G2 through G8. Thus, a total of six address bits are used for addressing 64 address locations of the random access data memory 666. Each of the 64 address locations of the random access data memory 666 includes 16 bits of data defining a total 64 x 16 data format.
Thus, while calculations are performed by the arithmetic unit 518 for each axis during each respective scan interval,
TABLE II
Control word data format
#PROM 1 # #PROM 2 # #1st Digits#2nd Digits#1st Digit 2nd Digit
|X161X151X14lX13lX12lX11 lX101X91X81X71X61X51X41X31X21X1 1 External data Ram location Input DISABLE 00 > . r 000 Mo DISABLE 01 ) | 001 M1 EXI 10 010 M2 EX2 11 . 011 M3 100 M4 MPY Clock 101 M5 DISABLE 00 z 110 M6 X Ol ill < 111 M7 Y 10 Z 11 Ram mode Position Scalar O RAM DISABLE 71N t 1 RAM SELECT i/2N 1 O O RAM READ 1 1 RAM WRITE AL U operation 00 F=ZERO Ol F=APLUSB 10 F=AMINUSB 11 F=A Register2 output ( 3STATE 01 3STATE 01 SSTATE 10 DATA LATCH 11 DATAIN Register 1 clock 0 O DISABLE t 1 ENABLE Multiplexer (o 0 DATA B 1 DATAA the random access data memory 666 writes in and reads out data under the control of the six address bits.
The arithmetic unit 518 includes a 16 bit by 16 bit digital multiplier 668. A 16 bit x data input 670 of the multiplier 668 is connected to the output of an arithmetic logic unit (ALU) 672. The arithmetic logic unit (ALU) 672 performs digital addition and subtraction functions as well as other combinational arithmetic functions.
A 16 bit Y data input of the multiplier 668 is connected to a digital data output bus 667 of the random access data memory stage 666. The data output of the multiplier 668 referred to at Z, the result of the XY digital multiplication of the X and Y inputs, is connected to a position scaler or divider stage 674.
The multiplier 668, referring to TABLE II, is controlled by the two data bit positions 13 and 14 of the control word format as shown to selectively disable the multiplier and to control the X, Y and Z input/output functions.
The external data bus EXT B, representing the interpolation number m or the Kv constant, is connected to the data output bus 667 of the random access data memory 666. The EDn bi-directional, three state data bus is connected to the data input of the random access data memory 666. The data output bus 667 of the random access data memory 666 is also connected to an A input of the arithmetic logic unit (ALU) 672 and to the data input of a data register #1 675. The output 677 of the data register #1 675 is connected to a B data input of the arithmetic logic unit (ALU) 672. The data output 670 of the arithmetic logic unit is also connected to an A data input of a data multiplexer stage 676. A B data input of the data multiplexer stage 676 is connected to the data output 678 of the position scaler stage 674.The data output 680 of the data multiplexer stage 676 is connected to the data input of a register #2 stage 682. The output of the register #2 stage 682 is connected to the bi-directional, three state data bus EDn.
The bi-directional nature of the EDn bus, as discussed hereinbefore, is utilized to select data either from the
EDn output of the data selector stage 510 or the data selector stage 506 (Figure 15). The main modes of the
EDn data bus includes: 1) the transfer of data into the arithmetic unit 518 and the comparator 564 as one state; 2) the transfer of data (position, velocity and acceleration commands) from the arithmetic unit 518 out to the comparator 564 and the velocity/acceleration command stage 582 as the second state; and 3) internal data transmission in the arithmetic unit 518. In addition and as discussed hereinbefore, the various timing signals as shown in Figure 17 multiplex the data on the EDn bus in all modes and directions.Referring again to
TABLE II and the data format of the 16 bit control word, the operation of the arithmetic logic unit (ALU) 672 is controlled by the two data bit positions 7 and 6. For example, a "01" command in the 7 and 6 positions respectively controls the ALU 672 to add the A and B data inputs. A "1 0" command controls the ALU 672 to subtract the B data input from the A data input. A "1 1" command controls the ALU 672 to transfer the A data input to the ALU data output. Further, a "00" command forces a zero data output of the ALU.
The multiplexer 676 is controlled by the data bit position 11 of the control word. A"1" in the 11 data bit position controls the multiplexer 676 to supply the data at the data input A and a "0" controls the multiplexer 676 to supply the data at the data input B. The register #2 682 is controlled by the data bit positions 8 and 9.
Data is latched upon a "01 " command or a "11" command. Data is outputted to the bi-directional, three state data bus EDn when the data bit position 9 is a "1". Thus, previously latched data is outputted to the data bus EDnwitha"10"command.
In one specific embodiment, the program memory stage 660 is implemented by two PROM logic devices arranged in parallel both as to data output and as to address control. The two PROM devices are referred to as PROM 1 and PROM 2, TABLE The PROM 1 outputs the data bit positions 9 through 16 of the control word and the PROM 2 outputs the 1 through 8 data bit positions. For the ease of programming and documentation purposes, the 1-4 data bit positions of the control word are referred to as the 2nd digit of the
PROM 2 and the 5-9 data bit positions are referred to as the 1st digit of the PROM 2. Similarly, the 9-12 data bit positions of the control word are referred to as the 2nd digit of the PROM 1 and the 13-16 data bit positions are referred to as the 1 st digit of the PROM 1.
Considering now the on-line operation of the arithmetic computer and processor unit 514 in more detail and referring to TABLE III, the symbology or abbreviations listed therein are utilized to define the operations performed by the arithmetic computer and processor unit 514 in response to the various control words. The symbols in TABLE III represent the operational logic elements of the arithmetic unit 518, the inputs and outputs of the operational logic elements, the data inputted to and outputted by the operational logic elements, and the arithmetic operations performed. For example, the Register #1 674 is identified by the symbol R and the Register #2 682 is identified by the symbol T.
The symbology of TABLE Ill is then utilized to represent the arithmetic operations performed by the arithmetic unit 518 in response to a particular 16 bit control word as an instruction set. Samples of various instruction sets and the corresponding operations performed by the arithmetic unit 518 are illustrated in
TABLE IV. The column in TABLE IV labeled "Description" represents the operation performed in terms of the symbols of TABLE Ill. The column of TABLE IV labeled "Operation" is an explanation of the corresponding operation represented by the symbols in the "Description" column. The column in TABLE IV labeled "Mneumonic" is a program language representation ofthe corresponding symbols in the "Description" column.
The information in the TABLES ill and IV is useful to explain the various operations which the arithmetic unit 518 is capable of performing and are also utilized to generate the control word programming to be stored in the program memory 660. The mneumonic program language representations are useful as a short-hand notation or code to aid a programmer or design engineer to write the 16 bit control words corresponding to the operation described in the mneumonic language and the symbolic description.
For example, referring now to TABLE V, typical arithmetic and data handling operations and the corresponding 16 bit control words are listed. The corresponding "Mneumonic" representation and "Description" representation as defined in TABLES lil and IV are also listed alongside each corresponding control word. The 16 bit control word for each of the typical operations is fully listed in the "CONTROL
WORD" portion of TABLE V. Further, a "CODED C.W." column lists a control word code for each corresponding 16 bit control word. The control word code is formed by listing a hexdecimal code digit for each of the 4 bit groups in the 16 bit control word; PROM 1-DIGIT 1, PROM 1-DIGIT 2, PROM 2-DIGIT 1, PROM 2-DIGIT 2 (TABLE II). For example the first control word in TABLE V MOV M, R, represents the transfer to the
Register #1 of the data in the RAM (random access memory 666) location being addressed and is coded as 02 OM. The 02 OM 4 digit code represents the full 16 bit control word 0000 00100000 1 MUM. The M code designation is an identifier to denote the address bits of the memory location of the random access data memory 666 corresponding to the M bits in the 1,2 and 3 data bit positions. These 3 address location data bits define the particular data to be read out or written in. The M designation merely represents any of the eight data locations to be defined by the particular 3 bits.
Referring now toTABLE VI, there are listed therein six sequence programs or operation groups to be performed by the arithmetic unit 518. Each of the six sequence programs includes 32 control words listed sequentially. The 32 control words in each sequence programs are listed in the code control word (CODED
C.W.) format. The 32 control words are identified in sequence by a hexdecimal coded address corresponding to the 32 sequential address locations in the program memory 660 for the particular program sequence selected. As discussed hereinbefore, the program sequence is addressed by the 3 bit mode address bus 522.
The 32 sequential control word locations at the particular mode address are addressed by the W1 -W5 program interval timing signals. The six sequence programs illustrated correspond to operational modes of the manipulator control apparatus: a teach initalize mode, TOP; a teach mode TEACH; a point-to-point or point-to-point controlled mode, PTP or PTPC; an end of interpolation step mode during the last interpolation interval, m - n case; a continuous path-constant velocity mode, CP(ACC=0); and a continuous path-constant acceleration mode, CP(ACC0).
The operations and coded control words listed in the sequence programs control the arithmetic unit 518 to perform the appropriate on-line computations to reconstruct the fixed path solution as precomputed in the off-line teaching mode by the off-line teach assist computer 34. The overall computations represented by the control words in TABLE II for the various sequence programs and corresponding operational modes implement the equations discussed hereinbefore and listed below for convenience.
Mode
PTP: POS=On VEL = 0
ACC = 0
CP:
ACC = 0: POS = On-1 + On-On-l x m
N VEL = ## x Kv x 64
N
ACC 0 ## = #n - #n-1 CP: ACC#0: #; POS - #n-1 + #m + #n-1xmx1 xN 2 N Kv 64 #NEW; VEL = 2 # #Kv 64 - #OLD N #; VEL = #n-1 + (#n - #n - 1) x m = #m N #;ACC = ##xKvx64 N AO=On On - where m = interp. count
N = the number of interpolation intervals in the step
0= A 0/64 LSD conveyor change
Kv = number of interpolation intervals/ step
number of conveyor LSD's/step #n = next position (next data Dn, the end of step n) #n-1 = previous position (previous data Dn-1, the end of step n-l) RENEW =#n = next velocity (end of step n) #OLD = #-1 = previous ve@ocity (end of step n-1) #m = present velocity (commanded)
n = present step identification
The symbol On-1 in on-line operation is always utilized to refer to the previous position at the end of the last step data Dun 1. The symbol On is utilized to refer to the precomputed position at the end of the present step data Dn to which the manipulator arm is to be moved during the step n. This convention is utilized within the on-line computation and control unit 18 regardless of whether the step is a CP (ACC = 0) or CP (ACC * 0) mode step.
Table III - Instruction set
(Symbology)
Symbols
R Register #1
T Register #2 (Temporary Reg.) OUTPUT enable Register #2 (Temporary Reg.) OUTPUT disable
M On RAM Address 000 ;new position data (1,2,3) #-1 001 previous position data 9n 010 ;new velocity command @ end point 6n-1 011 ;previous velocity command @ end point #m 100 ;updated position command
Om 101 ;updated velocity command AO 110 position difference
SCRATCH 111 ;scratch pad use
N # of Interpolation intervals per current step (externally
programmed) Interp. count (Input data)
Kv (l/Tr) Velocity constant (externally programmed) in binary 128 form ##c # of Conveyor LSD change in the step
X Multiplier X input
Y Multiplier Y input
Z Multiplier Z output
D Data on Data BUS, EDn
content of memory location, RAM, or Registers enclosed in the
parentheses
"Is transferred to"
+ Addition
2's complement subtraction
* Multiplication
Division
RAM Addr. in Hex. - Decimal Form
M (4321) 4 is RAM select bit
On 8 1000 On-1 9 1001 En A 1010 En-1 B 1011
Om C 1100 #m D 1101 AO E 111 0 SCRATCH F 1111
Table IV - sample instruction and corresponding operation
Data Transfer Group Operation
Mnemonic Description
MOV Mn,R (R)v(Mn) data in RM location n is transfered to Reg. #1.
MOV Mn,X (X)#(Mn) data in RAM location n is transferred to X input
of MPY.
MOV Mn, T* [T*]#(Mn) data in RAM location n is transfered to Reg. #2
with output disable mode
MOV T,M (Mn)#(T) data in Reg. #2 is transfered to RAM location n.
Arithmetic group ZEROX (X)~O set ZERO X input of multiplier
ZERO T* (T*)#0 set ZERO in Reg. #2 with output disable mode.
ADD M,X (X)#(M) + (R) Add RAM location to Reg. #1 and store the result
to X input of multiplier
ADD M,T (T)#(M) + (R) Add RAM location to Reg. #1 and store the result
to Reg. #2.
ADD M,T* (T*)#(M) + (R) Same as above but Reg. #2 is in output disable mode
SUB M,X (X)#(M) - (R) Subtract content of Reg. #1 from RAM location and
store the results into X input of multiplier
SUB M,T (T)~(M) - (R) Subtract content of Reg. #1 from RAM location and
store results into Reg. #2.
SUB M,T* (T*)#(M) - (R) Same as above but Reg. #2 is in output disable mode.
DIV N (T*)~(X) * (Y) + N Output from the multiplier is divided by N and
stored in Reg. #2.
DIV 2N (T*) & X) * (Y) t 2N Output from the multiplier is divided by 2N and
stored in Reg. #2.
110 Control group
IN M (Mn)#D data on data bus is inputed to RAM location n.
YIN EX1 (Y)#EX1 data from External Device EX1 on External Bus is
inputed to Y input of multiplier.
YIN EX2 (Y)vEX2 data from External Device EX2 on External Bus is
inputed to Y input of multiplier.
OUT M D#(Mn) data in Ram location n is outputed to Data Bus
Table IV
OUT ZERO D#0 ZERO is outputed to Data Bus
NOP NO Operation
NOPT No Operation but Reg #2 output is enable
Double operation instructions
ADD M,X Combination of Input instruction and
arithmetic instruction
IADD M,T*
SUB M,X
ISUB M,T*
IZERO M,X
IZERO M,T*
IPASS M,X
IPASS M,T*
TADD M,X Combination of move instructions and
arithmetic instructions
TADD M,X
TSUB M,T
TSUB M,X
TSUB M,T
TZERO M,X
TZERO M,T
TPASS M,X Table V - Typical operations 1 0 0 0
Mnemonic Description CONTROL WORD 8 4 2 1 CODED C.W.
X16 X15 X14 X13 X12 X11 X10 X9 X8 X7 X6 X5 X4 X3 X2 X1 PROM 1 PROM 2
MOV M,R (R)#(M) 0 0 0 0 0 0 1 0 0 0 0 0 1 M M M 02 0M
MOV M,X (X)#(M) 0 0 0 1 0 0 0 0 0 1 1 0 1 M M M 10 6M
MOV M,T* (T*)#(M) 0 0 0 0 0 0 0 0 1 1 1 0 1 M M M 00 EM
MOV T,M (M)#(T) 0 0 0 0 0 0 0 1 0 0 0 1 1 M M M 01 1M
ZERO X (X)#0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 10 08
ZERO T* (T*)#0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 00 88
ADD M,X (X)#(M)+(R) 0 0 0 1 0 0 0 0 0 0 1 0 1 M M M 10 2M
ADD M,T (T)#(M)+(R) 0 0 0 0 0 0 0 1 1 0 1 0 1 M M M 01 AM
ADD M,T* (T*)#(M)+(R) 0 0 0 0 0 0 0 0 1 0 1 0 1 M M M 00 AM
SUB M,X (X)#(M)-(R) 0 0 0 1 0 0 0 0 0 1 0 0 1 M M M 10 4M
SUB M,T (T)#(M)-(R) 0 0 0 0 0 0 0 1 1 1 0 0 1 M M M 01 CM
SUB M,T* (T*)#(M)-(R) 0 0 0 0 0 0 0 0 1 1 0 0 1 M M M 00 CM
DIV N (T)#(X)*(Y)#N 34-53 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 34 80
DIV 2N (T)#(X)*(Y)#2N 0 0 1 1 1 11 0 0 1 0 0 0 0 0 0 0 3C 80
YIN m* (Y)#m* 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 A4 60
YIN Kv (Y)#Kv 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 E0 60
YIN ##c (Y)##c 0 0 1 0 0 0 0 0 0 1 1 0 1 1 1 0 20 6E
IN M (M)#D 0 0 0 0 0 0 0 0 0 0 0 1 1 M M M 00 1M
OUTM D#(M) 0 0 0 0 0 0 0 1 1 1 1 0 1 M M M 01 EM TABLE V
Mnemonic Description CONTROL WORD CODED C.W.
X16 X15 X14 X13 X12 X11 X10 X9 X8 X7 X6 X5 X4 X3 X2 X1 PROM 1 PROM 2
OUT ZERO D#0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 01 88
IADD M,X (M)#D,(X)#(M)+(R) 0 0 0 1 0 0 0 0 0 0 1 1 1 M M M 10 3M
IADD M,T* (M)#D,(T*)#(M)+(R) 0 0 0 0 0 0 0 0 1 0 1 1 1 M M M 00 BM
ISUB M,X (M)#D,(X)#(M)-(R) 0 0 0 1 0 0 0 0 0 1 0 1 1 M M M 10 5M
ISUB M,T* (M)#D,(T*)#(M)-(R) 0 0 0 0 0 0 0 0 1 1 0 1 1 M M M 00 DM
TADD M,X (M)#(T),(X)#(M)+(R) 0 0 0 1 0 0 0 1 0 0 1 1 1 M M M 11 3M
TADD M,T (M)#(T),(T)#(M)+(R) 0 0 0 0 0 0 0 1 1 0 1 1 1 M M M 01 BM
TSUB M,X (M)#(T),(X)#(M)-(R) 0 0 0 1 0 0 0 1 0 1 0 1 1 M M M 11 5M
TSUB M,T (M)#(T),(T)#(M)-(R) 0 0 0 0 0 0 0 1 1 1 0 1 1 M M M 01 DM
IZERO M,X (M)#D,(X)#0 0 0 0 1 0 0 0 0 0 0 0 1 1 M M M 10 1M
IZERO M,T* (M)#D,(T*)#0 0 0 0 0 0 0 0 0 1 0 0 1 1 M M M 00 9M
IPASS M,X (M)#D,(X)#(M) 0 0 0 1 0 0 0 0 0 1 1 1 1 M M M 10 7M
IPASS M,T* (M)#D,(T*)#(M) 0 0 0 0 0 0 0 0 1 1 1 1 1 M M M 00 FM
TZERO M,X (M)#(T),(X)#0 0 0 0 1 0 0 0 1 0 0 0 1 1 M M M 11 1M
TZERO M,T (M)#(T),(T)#0 0 0 0 0 0 0 0 1 1 0 0 1 1 M M M 01 9M
TPASS M,X (M)#(T),(X)#(M) 0 0 0 1 0 0 0 1 0 1 1 1 1 M M M 11 7M
NOP NOOPERATION 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00
NOPT NOOPERATION, BUT(T) 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 01 00
IS AVAILABLE TABLE Vl TOP MODE - TEACH INITIALIZE
ADDRESS PROM 1 PROM 2 INSTRUCTION COMMENTS
1D/2D 1D/2D 00 00 00 NOP 01 00 00 NOP 02 00 00 NOP 03 00 00 NOP 04 00 00 NOP 05 00 00 NOP 06 00 00 NOP 07 00 00 NOP 08 00 00 NOP 09 00 18 IN, On write Encoder into RAM
OA 00 88 ZERO, T* Set ZERO in Temp. (disable)
OB 01 00 NOPT SEND OUT (ACCL = 0)
OC 01 00 NOPT
OD 01 00 NOPT
OE 01 00 NOPT SEND OUT (VEL = 0)
OF 01 00 NOPT 10 00 00 NOP 11 00 00 NOP 12 00 00 NOP 13 00 00 NOP 14 00 00 NOP 15 01 E8 OUT, On Onew into Temp.
16 01 00 NOPT 17 01 00 NOPT SEND OUT (POS = ENCODER)
TABLE VI (cont)
TOP
ADDRESS PROM 1 PROM 2 INSTRUCTION COMMENTS 18 00 00 NOP 19 00 00 NOP 1A 00 00 NOP lB 00 00 NOP 1C 00 00 NOP 1D 00 00 NOP 1E 00 00 NOP 1F 00 00 NOP
TEACH
ADDRESS PROM 1 PROM 2 INSTRUCTION COMMENTS 20 00 00 NOP 21 00 00 NOP 22 00 00 NOP 23 00 00 NOP 24 00 00 NOP 25 00 00 NOP 26 00 00 NOP 27 00 00 NOP 28 00 00 NOP 29 00 00 NOP 2A 00 88 ZERO, T* Set ZERO in Temp. (output
disable) 2B 01 00 NOP, T SEND OUT (ACCL = 0)
TABLE Vl (cont) TEACH MODE
ADDRESS PROM 1 PROM 2 INSTRUCTION COMMENTS 2C 01 00 NOPT 2D 00 00 NOP 2E 01 00 NOPT SENDOUT(VEL=0) 2F 01 00 NOPT 30 00 00 NOP 31 00 00 NOP 32 00 00 NOP 33 00 00 NOP 34 00 00 NOP 35 01 E8 OUT Bn Transfer #new to Temp.
36 01 00 NOP T SEND OUT (POS = #new) 37 01 00 NOPT 38 00 00 NOP 39 00 00 NOP 3A 00 00 NOP 3B 00 00 NOP 3C 00 00 NOP 3D 00 00 NOP 3E 00 00 NOP 3F 00 00 NOP
TABLE VI (cont)
PTP or PTPc MODE
ADDRESS PROM 1 PROM 2 INSTRUCTION COMMENTS 40 00 00 NOP 41 00 00 NOP 42 00 18 IN, On write data into Onew 43 00 00 NOP 44 00 00 NOP 45 00 00 NOP 46 00 00 NOP 47 00 00 NOP 48 00 00 NOP 49 00 00 NOP 4A 00 88 ZERO, T* Set ZERO in Temp. (disable) 4B 01 00 NOPT SEND OUT (ACCL=0) 4C 01 00 NOPT 4D 00 00 NOP 4E 01 00 NOP T SEND OUT (VEL = 0) 4F 01 00 NOPT 50 01 1B MOV,T,En-1 Store 0 into#old 51 00 00 NOP 52 00 00 NOP 53 00 00 NOP 54 00 00 NOP 55 01 E8 OUT, On Onew into Temp.
56 01 00 NOP T SEND OUT (POS = Onew) 57 01 00 NOPT
TABLE VI (cont)
PTP or PTPC
ADDRESS PROM 1 PROM 2 INSTRUCTION COMMENTS 58 00 00 NOP 59 00 00 NOP 5A 00 00 NOP SB 01 00 NOPT 5C 01 19 MOV,T,#n-1 Store #new into #old 5D 00 00 NOP SE 00 00 NOP 5F 00 00 NOP
m = n CASE 60 00 00 NOP 61 00 00 NOP 62 00 00 NOP 63 00 00 NOP 64 00 00 NOP 65 00 00 NOP 66 00 00 NOP 67 00 00 NOP 68 00 00 NOP 69 00 00 NOP 6A 00 00 NOP 6B 00 00 NOP 6C 00 00 NOP
TABLE Vl (cont) m = n case
ADDRESS PROM 1 PROM 2 INSTRUCTION COMMENTS 6D 00 00 NOP 6E 00 00 NOP 6F 00 00 NOP 70 00 00 NOP 71 00 00 NOP 72 00 00 NOP 73 00 00 NOP 74 00 00 NOP 75 00 00 NOP 76 00 00 NOP 77 00 00 NOP 78 00 00 NOP 79 00 00 NOP 7A 00 00 NOP 7B 01 E8 OUT #n Onew into Temp.
7C 01 19 MOV,T,#n-1 Transfer to RAM 0 old 7D 01 EA OUT,On #new into Temp.
7E 01 1B MOV,T,On-1 Transfer to RAM #old 7F 00 00 NOP
TABLE Vl (cont) CP (ACC=0) Mode
ADDRESS PROM 1 PROM 2 INSTRUCTION COMMENTS 80 02 09 MOV, On-1, R read Hold from RAM to Reg #1 81 E0 60 YIN, Kv Set K, into MPY 82 00 18 IN, On write data into RAM Onew 83 01 C8 SUB,#n,T Get ## into Temp.
84 01 1E MOV T, ## Temp### (RAM) 85 10 6E MOV ##,X ## into X 86 3C 80 DIV 2 N 87 01 1A MOV,T,On Transfer Tempto # new 88 00 00 NOP 89 00 00 NOP 8A 00 88 ZERO, T* 8B 01 00 NOPT SEND OUT (ACCL = 0) 8C 01 00 NOP T 8D 01 EA OUT,#n Get# new on BUS 8E 01 00 NOPT SEND VEL = #new 8F 00 00 NOP 90 A4 60 YIN, m* Get m* into Multiplier 91 34 80 DIV,N ##xM/N into Temp = #m 92 01 BF TADD,Scratch,T (##xM/N) + #old#T 93 01 1C MOV T, Om T##m = (##xm/n) + #old 94 00 00 NOP 95 01 00 NOPT Enable Temp.
96 01 00 NOPT SEND POS = #m 97 00 00 NOP
TABLE VI (cont)
ADDRESS PROM 1 PROM 2 INSTRUCTION COMMENTS 98 00 00 NOP 99 00 00 NOP 9A 00 00 NOP 9B 00 00 NOP 9C 00 00 NOP 9D 00 00 NOP 9E 00 00 NOP 9F 00 00 NOP
CP (ACC#0) Mode
ADDRESS PROM 1 PROM 2 INSTRUCTION COMMENTS
A0 02 09 MOV, #n-1, R Read #old from RAM into
Reg #1
Al E0 60 YIN, Kv Set Kv into MPY
A2 00 18 IN,On Write Ones into RAM
A3 10 48 SUB, Hn, X Get ## into X A4 34 80 DIV N ##x Ky/N into Temp.
A5 02 0B MOV, #n-1, R Move# old into Reg #1 A6 01 DF TSUB,Scratch,T ##x Kv/N - # old into Temp =# new A7 11 5A TSUB,#n,X Write into # new, -#old = ##into X A8 00 00 NOP
A9 E0 60 YIN,Kv Set Kv into MPY
AA 3C 80 DIV,2N Temp = # new = ## x Kv 2N
AB A5 60 YIN,m*, T Setm*,SENDACCL= Onew
TABLE VI (cont)
ADDRESS PROM 1 PROM 2 INSTRUCTION COMMENTS
AC 34 80 DIV, N Get AO x m*/N to Temp.
AD 01 BF TADD,Scratch,T (AOXm/N)+6oldintoTemp.
AE 11 3D TADD,6m,X Store# m into RAM, #m + 15 # old# x, SEND VEL = #m AF A4 60 YINm* Set m*
B0 34 80 DIV N(Hardware) (# m+# old)xm*/64#Temp.
B1 20 6E YIN, ##c ##c into Y B2 11 7F TPASS, Scratch X Temp X B3 02 09 MOV, #n-1, R Move #old to Reg #1
B4 3C 80 DIV 2N (#m+# old) x m*/64 x AOc/2N < Temp B5 01 BF TADD, Scratch, T (6m+O old) x m/64 x AOc/2N + Holds Temp
B6 01 1C MOV, T, Om SEND POS and Store in Om
B7 00 00 NOP
B8 00 00 NOP
B9 00 00 NOP
BA 00 00 NOP
BB 00 00 NOP
BC 00 00 NOP
BD 00 00 NOP
BE 00 00 NOP
BF 00 00 NOP
The following integrated circuit devices have been found suitable in a specific implementation of the
Arithmetic Unit 518 and the Processor Memory 516 and are given by way of example only and should not be interpreted in a limiting sense: :
Device type No. ofdevices Manufacturer
ALU 672 74181 (four) Texas Instruments
Register #1 675 7475 (four) Texas Instruments
Multiplier 668 MPY-16 (one) TRW
Position Scalar 674 8243 (five) Signetics
Multiplexer 676 74157 (four) Texas Instruments Register # 2 682 8212 (two) Intel
Random Access
Data Memory 666 N82S09 (two) Signetics
Program Memory 660 1702A (two) Intel
While there has been illustrated and described several embodiments of the present invention, it will be apparent that various changes and modifications thereof will occur to those skilled in the art. It is intended in the appended claims to cover all such changes and modifications as fall within the true spirit and scope of the present invention.
Claims (50)
1. A programmable manipulator provided with a manipulator arm which is movable in a plurality of axes, said manipulator having means for developing position signals corresponding to the actual position of said arm in said plurality of axes and being positioned adjacent a predetermined work path to perform a series of operations with respect to a workpiece moving along said work path, and means for positioning said arm at different locations relative to a stationary workpiece during an initial teaching operation, characterized by the provision of means for precomputing signals representing movement of said arm between said different locations relative to said workpiece accounting for projected workpiece movement and corresponding to movement at the maximum dynamic capabilities of said manipulator arm, and means for storing said precomputed signals for use as command signals in controlling movement of said arm in playback cycle with a moving workpiece.
2. The combination of claim 1 further comprising means responsive to said command signals for controlling movement of said arm in correlation with a moving workpiece during a playback cycle.
3. The combination of claim 2 further comprising workpiece encoder means for developing position signals corresponding to workpiece movement along said predetermined work path.
4. The combination of claim 3 wherein said controlling means comprises:
arithmetic computation means for generating position, velocity and acceleration control signals in accordance with said command signals and a predetermined series of control words, each of said control words including a predetermined number of data bits to define operation of said arithmetic computation means; and
means for generating said predetermined series of control words in a predetermined sequence.
5. The combination of claim 4 wherein said arithmetic computation means comprises means for generating a predetermined number of sequential position, velocity and acceleration control signals.
6. The combination of claim 5 wherein said command signals include an interpolation interval code to define a predetermined number of interpolation intervals, said controlling means further comprising means responsive to said interpolation interval code for generating an interpolation interval control signal.
7. The combination of claim 6 wherein said sequential control signal generating means is responsive to said interpolation interval control signal, said predetermined number of interpolation intervals defining said predetermined number of sequential control signals.
8. The combination of claim 7 wherein said sequential control signal generating means is responsive to two successive command signals, said predetermined number of sequential control signals representing movement of said manipulator arm between the manipulator arm positions represented by said two successive command signals.
9. The combination of claim 7 wherein each of said stored command signals includes a workpiece positional signal corresponding to projected workpiece movement.
10. The combination of claim 9 wherein said sequential control signal generating means generates an artificial workpiece position signal and control signals for each of said axes.
11. The combination of claim 10 wherein said controlling means further comprises means for detecting a predetermined state of equality between said positional signal generated by said workpiece encoder means and said artificial workpiece position signal.
12. The combination of claim 11 wherein said interpolation interval control signal generating means is responsive to said detecting means.
13. The combination of claim 12 wherein said interpolation interval control signal is a digital signal advanced by one digital data state upon each occurrence of equality between said workpiece encoder positional signal and said generated workpiece position control signal.
14. The combination of claim 4 wherein said command signals include mode data signals representing operational modes including an acceleration mode or a constant velocity mode, said controlling means further comprising means for decoding said mode data signals to generate an acceleration control output or a velocity control output.
15. The combination of claim 14 wherein said arithmetic computation means further comprises means for generating a predetermined number of sequential command signals representing acceleration of said manipulator arm in response to said acceleration control output and representing constant velocity of said manipulator arm in response to said velocity control o.
16. The combination of claim 1, which includes means for reading out said stored command signals in a predetermined manner, means responsive to two successive command signals for generating a predetermined number of sequential position, velocity and acceleration control signals for each of said manipulator axes, and means responsive to said control signals for moving said manipulator arm to said projected position in accordance with movement of said workpiece.
17. The combination of claim 16 wherein said series of command signals represents a predetermined sequence of work operations with respect to a workpiece.
18. The combination of claim 16 wherein said control signals represent manipulator arm movement in said manipulator axes including constant acceleration portions and constant velocity portions.
19. The combination of claim 16 wherein said predetermined number of sequential control signals represent the projected dynamic manipulator arm movement between the positions represented by successive command signals with respect to the workpiece.
20. The combination of claim 16 wherein said control signal generating means comprises:
arithmetic computation means for generating position, velocity and acceleration control signals in accordance with said command signals and a predetermined series of control words, each of said control words including a predetermined number of data bits to define operation of said arithmetic computation means; and
means for generating said predetermined series of control words in a predetermined sequence.
21. The combination of claim 20 wherein said command signals include an interpolation interval code to define a predetermined number of interpolation intervals, said control signal generating means further comprising means responsive to said interpolation interval code for generating an interpolation interval control signal.
22. The combination of claim 21 wherein said control signal generating means is responsive to said interpolation interval control signal, said predetermined number of interpolation intervals defining said predetermined number of sequential control signals.
23. The combination of claim 16 wherein said control signal generating means comprises means for calculating said velocity control signals from the projected manipulator arm position of said two successive command signals and means for calculating said acceleration control signals from the velocity at the projected manipulator arm positions corresponding to said two successive command signals.
24. The combination of claim 16 wherein said control signal generating means comprises meansfor calculating said position control signals from said velocity control signals and the projected manipulator arm position corresponding to one of said two successive command signals.
25. The combination of claim 1, which includes means responsive to said command signals for moving said arm to said different positions relative to a moving workpiece during a subsequent playback cycle, and means for adjusting said arm moving means for variations in the actual velocity of said moving workpiece from said predetermined velocity during said subsequent playback cycle.
26. The The combination of claim 25 further comprising means responsive to said command signals for controlling movement of said arm in correlation with a moving workpiece during a playback cycle.
27. The combination of claim 26 further comprising workpiece encoder means for developing position signals corresponding to workpiece movement along said reference axis, said movement controlling means including means for dividing the resultant difference between successive stored command signals into a number of increments equal to a predetermined number of artificial command signals, means for multiplying each of said increments by a variable integer increasing by one with each successive one of said artificial command signals, and means for combining said series of multiplied increment products with the preceding stored command signal to produce said series of artificial command signals.
28. The combination of claim 27 wherein said means for controlling movement of said arm further comprises means for comparing said position signals corresponding to workpiece movement with said artificial command signals, and said dividing means further comprises counter means responsive to said comparing means and advanced by the coincidence of said artificial command signals and said position signals corresponding to workpiece movement for controlling the generation of successive artifical command signals.
29. The combination of claim 26 further comprising workpiece reference axis encoder means for developing position signals corresponding to workpiece movement along said reference axis, said stored command signals including a workpiece reference axis positional signal corresponding to projected workpiece movement, said movement controlling means including means for detecting a predetermined state of equality between said positional signals of said workpiece encoder means and said artificial workpiece reference axis command signals, and means controlled by said detecting means for generating a predetermined number of artificial command signals for controlling movement of said arm in correlation with said moving workpiece.
30. The combination of claim 29 wherein said artificial command signal generating means further comprises:
a multiplier responsive to a control input and arranged to multiply the resultant difference between successive command signals by a series of fractions according to said control input, the denominator of each of said fractions being equal to said predetermined number of artificial command signals, the numerator being a variable integer increasing by one with each successive one of said artificial command signals; and
means for combining said series of products of multiplied difference signals and fractions with the preceding command signal to produce said series of artificial command signals, said control input being generated by said detecting means.
31. The combination of claim 26 further comprising workpiece reference axis encoder means for developing position signals corresponding to workpiece movement along said reference axis, said calculating means comprising means responsive to said workpiece reference axis encoder means for calculating projected workpiece position signals for each of said initial teaching positions of said manipulator arm based on maximum projected workpiece movement and the maximum dynamic capabilities of the manipulator arm, and means for storing said projected workpiece position signals.
32. The combination of claim 1 wherein said calculating means further comprises:
means for converting said position signals corresponding to different angular positions of said arm in said plurality of axes for successive taught steps to Cartesian coordinates of the free end of said arm;
means for translating said resulting Cartesian coordinates to account for the projected movement of said workpiece in terms of positional displacement units along said reference axis during the projected elapsed time for said arm to traverse the distance between successive taught positions on said workpiece at the maximum dynamic capabilities of said arm, and
means for reconverting said translated Cartesian coordinates into new position signals corresponding to different angular positions of said arm in said plurality of axes.
33. The combination of claim 32 wherein said translating means comprises:
means for determining the projected time interval T.2 for the arm to traverse the distance between successive taught points P15 and P25 on the stationary workpiece at a projected arm velocity of V, a projected arm acceleration +a and a projected arm deceleration -a, and
means for modifying the Cartesian coordinates of P25 by a quantity which is defined by a first factor equal to the accumulated program position, oD1, up to program step 1 corresponding to Pis in terms of a number of basic displacement units of workpiece position and the distance D1-2 traversed by the workpiece during movement of the arm between Pis and P25 in terms of a number of basic displacement units of workpiece position.
34. The combination of claim 33 wherein said determining means comprises:
means for calculating T1, the time for the manipulator arm to accelerate at the rate +a from the projected workpiece velocity Vc to the velocity VM; means for calculating T2, the time for the manipulator arm to decelerate at the rate -a from the velocity to the velocity Vc; and
means for calculating TM, the time for the manipulator arm to move the distance, AS1 - VM (T1 + T2), a the velocity VM, where AS1.2 is the distance between the points P15 and P2s.
35. The combination of claim 34 wherein said manipulator arm velocity VM iS equal to the maximum manipulator arm velocity VMAX minus the projected workpiece velocity Vc.
36. The combination of claim 34 wherein said projected time interval T1-2 is equal to the sum of the times T1, T2 and TM.
37. The combination of claim 36 wherein said modifying means comprises means for calculating said distance D1 2 on the basis of the time T1 2 and the projected workpiece velocity Vc.
38. The combination of claim 33 wherein said determining means comprises:
means for calculating Ten for each of the manipulator axes, where Ten is the minimum projected time interval for each axis of the manipulator to accomplish the movement between P15 and P2s; and
means for comparing the T On values for the manipulator axes and determining the greatest Ten to define T1-2*
39. The combination of claim 1 which includes means responsive to said command signals for moving said arm to said desired location relative to a workpiece which is moving at a velocity which is different from said projected velocity during a subsequent playback cycle.
40. The combination of claim 1 which includes means for converting said position signals corresponding to different angular positions of said arm in said plurality of axes for successive taught steps into corresponding Cartesian coordinates; and
means for translating said resulting Cartesian coordinates to account for the projected movement of said workpiece in terms of positional displacement units along said reference axis during the projected elapsed time for said arm to traverse the distance between successive taught positions on said workpiece at the maximum dynamic capabilities of said arm.
41. The combination of claim 1, wherein said precomputing means includes means for converting said position signals corresponding to different angular positions of said arm in said plurality of axes for successive taught steps into corresponding Cartesian coordinates, means for calculating the time interval required for said arm to traverse the distance between successive taught positions when the workpiece is moving at a predetermined velocity and said arm is moving at the maximum dynamic capabilities, and means controlled by said calculating means for translating said resulting Cartesian coordinates to account for movement of said workpiece along said reference axis during said calculated time interval.
42. The combination of claim 41 wherein said predetermined velocity of said workpiece is the maximum allowable velocity of said workpiece when said arm is moving at its maximum velocity.
43. The method of programming a manipulator to perform a series of operations on a workpiece while the workpiece is moving along a predetermined path, the manipulator having an arm which is movable in a plurality of axes and encoder means for said axes operative to develop position signals corresponding to the actual position of said arm, the method comprising the steps of:
moving said arm to different positions relative to a stationary workpiece during an initial teaching operation, said positions corresponding to desired operations of the manipulator relative to the stationary workpiece;
precomputing signals representing the path of said manipulator arm to move between successive taught positions in the minimum projected elapsed time and corresponding to positions of said arm accounting for projected workpiece movement; and
storing said calculated signals for use in controlling movement of said arm during playback with a moving workpiece.
44. The method of claim 43 further comprising the step of selectively advancing the workpiece during th initial teaching operation to the approximately position corresponding to the position of the workpiece accounting for projected workpiece movement.
45. The method of programming a manipulator to perform a series of operations on a workpiece while the workpiece is moving along a predetermined path, the manipulator having an arm which is movable in a plurality of axes and means for said axes operative to develop position signals corresponding to the actual position of said arm, the method comprising the steps of:
moving said arm to different positions relative to a stationary workpiece during an initial teaching operation, said position corresponding to desired operations of the manipulator relative to the stationary workpiece;
precomputing signals representing the path of said arm projected for playback operations of said series oi operations with a moving conveyor, said signals representing the path of said arm calculated in terms of the maximum dynamic parameters of arm movement and accounting for projected workpiece movement; and
storing said precomputed signals for use in controlling movement of said arm during playback with a moving workpiece.
46. The combination of claim 1, wherein said stored command signals include a first series of program work operation command signals representing positions of said manipulator arm in said plurality of axes and a second series of track alarm command signals representing positions of said manipulator arm, each of said track alarm command signals representing a predetermined static point on the workpiece at corresponding workpiece positions;
means for detecting a predetermined improper operating mode of said manipulator arm with respect to said workpiece;
means for controlling the sequential read out of said first series of program work operations in accordance with movement of said workpiece;
means responsive to said first and second series of command signals for moving said manipulator arm to the positions represented by said command signals; and
means responsive to said detecting means for controlling the read out of said second series of track alarm command signals.
47. The combination of claim 1, wherein said manipulator arm including a work head for selective contact with said workpiece, means for calculating signals representing a predetermined change in orientation of said manipulator arm relative to the workpiece for work operations in contact with and tracking the workpiece movement, said predetermined change in orientation being calculated to change the orientation of said manipulator arm by said predetermined orientation change between the initial contact of said manipulator arm and the workpiece and the projected termination of the workpiece contact; and
means for storing said calculated signals for use as command signals in controlling movement of said arm in a playback cycle to perform said predetermined series of work operations on the workpiece.
48. The combination of claim 1, wherein said stored command signals include a first series of program work operation command signals representing positions of said manipulator arm in said plurality of axes and one or more series of escape path signals representing positions of said manipulator arm, each of said series of escape path command signals representing a series of manipulator arm positions to withdraw said manipulator arm away from said workpiece to a predetermined position, means actuable by an operator for generating an escape mode signal, means for controlling the sequential read out of said first series of program work operations in accordance with movement of said workpiece, means responsive to said first series of command signals and said escape path command signals for moving said manipulator arm to the positions represented by said command signals, and means responsive to said escape mode generating means for controlling the read out of a predetermined one of said series of escape path command signals in accordance with the number of the work operation command signals at which said escape mode generating means is actuated.
49. A programmable manipulator in combination with off-line teach assist apparatus and on-line control apparatus substantially as herein described with reference to the accompanying drawings.
50. A method of programming a manipulator to perform a series of operations on a workpiece while the workpiece is moving along a predetermined path, the method being substantially as herein described with reference to the accompanying drawings.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US89811278A | 1978-04-20 | 1978-04-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
GB2027938A true GB2027938A (en) | 1980-02-27 |
GB2027938B GB2027938B (en) | 1982-10-06 |
Family
ID=25408963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB7913798A Expired GB2027938B (en) | 1978-04-20 | 1979-04-20 | Off-line teach assist apparatus and on-line control apparatus |
Country Status (4)
Country | Link |
---|---|
JP (1) | JPS54141972A (en) |
AU (1) | AU520285B2 (en) |
CA (1) | CA1119279A (en) |
GB (1) | GB2027938B (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2505716A1 (en) * | 1981-05-15 | 1982-11-19 | Dea Spa | MANIPULATOR ARM ASSEMBLY CONTROLLED BY A CALCULATOR SYSTEM |
FR2505718A1 (en) * | 1981-05-15 | 1982-11-19 | Dea Spa | INDUSTRIAL PRODUCTION SYSTEM SERVICED BY A MULTIPLICITY OF MANIPULATOR ARMS AND CONTROLLED BY A CALCULATOR SYSTEM |
FR2505717A1 (en) * | 1981-05-15 | 1982-11-19 | Dea Spa | DIMENSIONAL MEASUREMENT SYSTEM SERVED BY A MULTIPLICITY OF MANIPULATOR ARMS AND CONTROLLED BY A CALCULATOR SYSTEM |
EP0075325A2 (en) * | 1981-09-22 | 1983-03-30 | Kabushiki Kaisha Sankyo Seiki Seisakusho | Control apparatus and method for industrial robot |
EP0076970A1 (en) * | 1981-10-05 | 1983-04-20 | Kabushiki Kaisha Sankyo Seiki Seisakusho | Process for inputting coordinate points of a desired path of movement for a preset robot |
EP0086950A1 (en) * | 1982-02-19 | 1983-08-31 | Hitachi, Ltd. | Method of controlling an industrial robot |
US4420812A (en) * | 1979-09-14 | 1983-12-13 | Tokico, Ltd. | Teaching- playback robot |
EP0104270A1 (en) * | 1982-09-23 | 1984-04-04 | Kabushiki Kaisha Sankyo Seiki Seisakusho | Robot control apparatus |
EP0383944A1 (en) * | 1988-08-24 | 1990-08-29 | Matsushita Electric Industrial Co., Ltd. | Action teaching method and control apparatus for a robot |
GB2232505A (en) * | 1989-05-23 | 1990-12-12 | Honda Motor Co Ltd | Robot control system |
EP1801678A2 (en) | 2005-12-20 | 2007-06-27 | KUKA Roboter GmbH | Robot trajectory control including emergency evacuation path system and method |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59223812A (en) * | 1983-06-02 | 1984-12-15 | Nippon Denshi Kagaku Kk | Robot controller |
JPS603009A (en) * | 1983-06-20 | 1985-01-09 | Nippon Denshi Kagaku Kk | Robot controller |
JPS60134306A (en) * | 1983-12-21 | 1985-07-17 | Fujitsu Denso Ltd | Program developing device for automatic parts inserting system |
JPS62295893A (en) * | 1986-06-17 | 1987-12-23 | フアナツク株式会社 | Control system of robot |
JP2707087B2 (en) * | 1987-09-09 | 1998-01-28 | ファナック株式会社 | Robot controller |
AU602996B2 (en) * | 1987-10-23 | 1990-11-01 | Mitsubishi Jukogyo Kabushiki Kaisha | Control systems of an industrial robot |
JP2511072B2 (en) * | 1987-10-23 | 1996-06-26 | 三菱重工業株式会社 | Recording / playback method of teaching data in robot |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5325779A (en) * | 1976-08-23 | 1978-03-09 | Hitachi Seiko Ltd | Speed operating method in numeric control unit |
US4086522A (en) * | 1976-09-08 | 1978-04-25 | Unimation, Inc. | Computer assisted teaching arrangement for conveyor line operation |
-
1979
- 1979-03-13 CA CA000323356A patent/CA1119279A/en not_active Expired
- 1979-03-21 AU AU45300/79A patent/AU520285B2/en not_active Ceased
- 1979-04-19 JP JP4962879A patent/JPS54141972A/en active Pending
- 1979-04-20 GB GB7913798A patent/GB2027938B/en not_active Expired
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4420812A (en) * | 1979-09-14 | 1983-12-13 | Tokico, Ltd. | Teaching- playback robot |
FR2505716A1 (en) * | 1981-05-15 | 1982-11-19 | Dea Spa | MANIPULATOR ARM ASSEMBLY CONTROLLED BY A CALCULATOR SYSTEM |
FR2505718A1 (en) * | 1981-05-15 | 1982-11-19 | Dea Spa | INDUSTRIAL PRODUCTION SYSTEM SERVICED BY A MULTIPLICITY OF MANIPULATOR ARMS AND CONTROLLED BY A CALCULATOR SYSTEM |
FR2505717A1 (en) * | 1981-05-15 | 1982-11-19 | Dea Spa | DIMENSIONAL MEASUREMENT SYSTEM SERVED BY A MULTIPLICITY OF MANIPULATOR ARMS AND CONTROLLED BY A CALCULATOR SYSTEM |
EP0075325A2 (en) * | 1981-09-22 | 1983-03-30 | Kabushiki Kaisha Sankyo Seiki Seisakusho | Control apparatus and method for industrial robot |
EP0075325A3 (en) * | 1981-09-22 | 1984-09-05 | Kabushiki Kaisha Sankyo Seiki Seisakusho | Control apparatus and method for industrial robot |
EP0076970A1 (en) * | 1981-10-05 | 1983-04-20 | Kabushiki Kaisha Sankyo Seiki Seisakusho | Process for inputting coordinate points of a desired path of movement for a preset robot |
EP0086950A1 (en) * | 1982-02-19 | 1983-08-31 | Hitachi, Ltd. | Method of controlling an industrial robot |
EP0104270A1 (en) * | 1982-09-23 | 1984-04-04 | Kabushiki Kaisha Sankyo Seiki Seisakusho | Robot control apparatus |
US4558424A (en) * | 1982-09-23 | 1985-12-10 | Kabushiki Kaisha Sankyo Seiki Seisakusho | Robot control apparatus |
EP0383944A1 (en) * | 1988-08-24 | 1990-08-29 | Matsushita Electric Industrial Co., Ltd. | Action teaching method and control apparatus for a robot |
EP0383944A4 (en) * | 1988-08-24 | 1993-02-24 | Matsushita Electric Industrial Co., Ltd. | Robot action teaching method and control apparatus therefor |
US5371836A (en) * | 1988-08-24 | 1994-12-06 | Matsushita Electric Industrial Co., Ltd. | Position teaching method and control apparatus for robot |
GB2232505A (en) * | 1989-05-23 | 1990-12-12 | Honda Motor Co Ltd | Robot control system |
US5079491A (en) * | 1989-05-23 | 1992-01-07 | Honda Giken Kogyo Kabushiki Kaisha | Robot control system |
GB2232505B (en) * | 1989-05-23 | 1993-09-29 | Honda Motor Co Ltd | Robot control system |
EP1801678A2 (en) | 2005-12-20 | 2007-06-27 | KUKA Roboter GmbH | Robot trajectory control including emergency evacuation path system and method |
EP1801678A3 (en) * | 2005-12-20 | 2008-03-19 | KUKA Roboter GmbH | Robot trajectory control including emergency evacuation path system and method |
US7627394B2 (en) | 2005-12-20 | 2009-12-01 | Kuka Roboter Gmbh | Robot trajectory control including emergency evacuation path system and method |
CN1990197B (en) * | 2005-12-20 | 2011-12-07 | 库卡实验仪器有限公司 | Robot trajectory control system and method including emergency evacuation path |
Also Published As
Publication number | Publication date |
---|---|
AU4530079A (en) | 1979-10-25 |
GB2027938B (en) | 1982-10-06 |
AU520285B2 (en) | 1982-01-21 |
CA1119279A (en) | 1982-03-02 |
JPS54141972A (en) | 1979-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4338672A (en) | Off-line teach assist apparatus and on-line control apparatus | |
GB2027938A (en) | Improved off-line teach assist apparatus and on-line control apparatus | |
US4821207A (en) | Automated curvilinear path interpolation for industrial robots | |
EP0299403B1 (en) | Method and apparatus for moving a tool along a curved path | |
CA1091330A (en) | Computer assisted teaching arrangement for conveyor line operation | |
US4529921A (en) | Tracking control system of multijoint robot | |
US4954762A (en) | Method and apparatus for controlling tracking path of working point of industrial robot | |
US5014183A (en) | Method and means for path offsets memorization and recall in a manipulator | |
EP0076498B1 (en) | A method controlling an arc welding torch of a welding robot | |
EP0470564B1 (en) | Method of and apparatus for controlling motion of a machine member | |
EP0507531B1 (en) | Method and apparatus for generating acceleration and deceleration patterns for robot control | |
JPH11347984A (en) | Robot control device | |
JP3168682B2 (en) | Numerical control unit | |
JPS60124475A (en) | Method and device for controlling profiling of weld line | |
US4677276A (en) | Method of welding robot control which controls the three basic axes of a robot to provide a repetition of a weaving pattern along a robot locus | |
KR0168065B1 (en) | Motor controlling method & device on numeric controlling system | |
JPH10260714A (en) | Robot interference area setting program preparing method | |
JP2985138B2 (en) | Speed control device and numerical control feed speed control method | |
JP2753369B2 (en) | Numerical control unit | |
JP2002082705A (en) | Robot controller | |
JPS60220408A (en) | Joint type robot controller | |
JPS61136106A (en) | Information method of cubic arc | |
JPH01281504A (en) | Multi-shaft position servo device | |
JPH05261546A (en) | Control method for welding robot | |
JPS6277610A (en) | Robot controller equipped with step-back function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PCNP | Patent ceased through non-payment of renewal fee |