CA1119279A - Off-line teach assist apparatus and on-line control apparatus - Google Patents
Off-line teach assist apparatus and on-line control apparatusInfo
- Publication number
- CA1119279A CA1119279A CA000323356A CA323356A CA1119279A CA 1119279 A CA1119279 A CA 1119279A CA 000323356 A CA000323356 A CA 000323356A CA 323356 A CA323356 A CA 323356A CA 1119279 A CA1119279 A CA 1119279A
- Authority
- CA
- Canada
- 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.)
- Expired
Links
- 230000033001 locomotion Effects 0.000 claims abstract description 140
- 238000006073 displacement reaction Methods 0.000 claims abstract description 26
- 230000000875 corresponding effect Effects 0.000 claims description 90
- 230000001133 acceleration Effects 0.000 claims description 86
- 238000000034 method Methods 0.000 claims description 74
- 230000003068 static effect Effects 0.000 claims description 33
- 230000008859 change Effects 0.000 claims description 30
- 230000001276 controlling effect Effects 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 19
- BCSVCWVQNOXFGL-UHFFFAOYSA-N 3,4-dihydro-4-oxo-3-((5-trifluoromethyl-2-benzothiazolyl)methyl)-1-phthalazine acetic acid Chemical compound O=C1C2=CC=CC=C2C(CC(=O)O)=NN1CC1=NC2=CC(C(F)(F)F)=CC=C2S1 BCSVCWVQNOXFGL-UHFFFAOYSA-N 0.000 claims 1
- 229940086255 perform Drugs 0.000 claims 1
- 230000002311 subsequent effect Effects 0.000 claims 1
- 238000004458 analytical method Methods 0.000 description 47
- 239000000243 solution Substances 0.000 description 37
- 239000013256 coordination polymer Substances 0.000 description 35
- 238000003466 welding Methods 0.000 description 33
- 238000004364 calculation method Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 26
- 239000013598 vector Substances 0.000 description 15
- 239000003550 marker Substances 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 10
- 241000377284 Oonops Species 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 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 7
- 239000002131 composite material Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 229940036310 program Drugs 0.000 description 5
- 238000002524 electron diffraction data Methods 0.000 description 4
- 150000002500 ions Chemical class 0.000 description 4
- 101100129500 Caenorhabditis elegans max-2 gene Proteins 0.000 description 3
- 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
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 210000000707 wrist Anatomy 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 201000008103 leukocyte adhesion deficiency 3 Diseases 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101150034533 ATIC gene Proteins 0.000 description 1
- 241000256844 Apis mellifera Species 0.000 description 1
- 241001527902 Aratus Species 0.000 description 1
- 102100022404 E3 ubiquitin-protein ligase Midline-1 Human genes 0.000 description 1
- 101150058443 ENT5 gene Proteins 0.000 description 1
- 101000680670 Homo sapiens E3 ubiquitin-protein ligase Midline-1 Proteins 0.000 description 1
- 101000766246 Homo sapiens Probable E3 ubiquitin-protein ligase MID2 Proteins 0.000 description 1
- 101000797623 Homo sapiens Protein AMBP Proteins 0.000 description 1
- 241000489861 Maximus Species 0.000 description 1
- 101100237799 Mus musculus Mlkl gene Proteins 0.000 description 1
- 101100074998 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) nmp-2 gene Proteins 0.000 description 1
- 241001282736 Oriens Species 0.000 description 1
- 101000822152 Petunia hybrida 1-aminocyclopropane-1-carboxylate oxidase 1 Proteins 0.000 description 1
- 102100026310 Probable E3 ubiquitin-protein ligase MID2 Human genes 0.000 description 1
- 102100032859 Protein AMBP Human genes 0.000 description 1
- XDXHAEQXIBQUEZ-UHFFFAOYSA-N Ropinirole hydrochloride Chemical compound Cl.CCCN(CCC)CCC1=CC=CC2=C1CC(=O)N2 XDXHAEQXIBQUEZ-UHFFFAOYSA-N 0.000 description 1
- 241001122767 Theaceae Species 0.000 description 1
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical compound [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- JZCCFEFSEZPSOG-UHFFFAOYSA-L copper(II) sulfate pentahydrate Chemical compound O.O.O.O.O.[Cu+2].[O-]S([O-])(=O)=O JZCCFEFSEZPSOG-UHFFFAOYSA-L 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
- 230000007257 malfunction Effects 0.000 description 1
- 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 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 238000005457 optimization Methods 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
- YMBCJWGVCUEGHA-UHFFFAOYSA-M tetraethylammonium chloride Chemical compound [Cl-].CC[N+](CC)(CC)CC YMBCJWGVCUEGHA-UHFFFAOYSA-M 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)
- General Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Fuzzy 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
ABSTRACT OF THE DISCLOSURE
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 execu-tion time on the basis of the maximum dynamic capabilities of the manipulator arm being taught. The teach assist apparatus receives input data represent-ing the positions of the arm relative to the workpiece as the arm is moved during the initial teaching operation to different positions of the station-ary 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 include projected workpiece positions in terms of basic linear displacement units corresponding to positions of the work-piece. During an on-line replay or playback of the series of work opera-tions, 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.
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 execu-tion time on the basis of the maximum dynamic capabilities of the manipulator arm being taught. The teach assist apparatus receives input data represent-ing the positions of the arm relative to the workpiece as the arm is moved during the initial teaching operation to different positions of the station-ary 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 include projected workpiece positions in terms of basic linear displacement units corresponding to positions of the work-piece. During an on-line replay or playback of the series of work opera-tions, 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.
Description
''3;2~9 Cross Reference To Related Applications The present application is related to co-pending Canadian application Serial No. 264,391 filed October 28, 1976, now Canadian Patent No. 1,084,966, and Canadian applica-tion Serial No. 282,868 filed July 15, 1977, now Patent No.
1,091,330, and these co-pending applications are hereby incor-porated 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 particu-larly to an arrangement wherehy 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 playback work cycle 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 la 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. 264,391 and 282,868, arrangements are shown wherein the programmable manipulator is taught a series of work operations to be performed 11~9'h79 on a workpiece during an initial teaching phase with the conveyor stationary or at various teach positions. The static teach data is projectedto account for projected conveyor movement at a predetermined conveyor velocity to transl'ate the static taught data.
The translated data iR then recorded. The recorded data is utilized during a playback of the work cycle in accordance wit~
conveyor movement to control movement of the manipulator to perform the work operations. While this ar~anqement 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.RrE.-Hohn on March 8, 1977. In this~arrangement, the-pro-gram is taught-with a stationary conveyor and al~ manipulator- arm positions are recordëa without any calculations for projected conveyor motion during pl~yback. 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 qenerated by~'the ' ' '' program and for tracking error ~ased on past performance to cipate further tracXing behavior. For example, tracXing appara-tus determines the position off-set as unprogrammed~position change from the conveyor position at which the arm positions are recorded.
~he tracking apparatus then off-sets the recorded arm positions accord-ingly. 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 con-veyor 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 exe-cution time in accordance with projected conveyor motion in an off-line teach mode.
Another arrangement disclosed in United States 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 predeter-mined path in space between two predetermined points. In a teach mvde, the manipulator arm coordinates for the two points are recorded along with a prede~ermined path velocity. In a play-back cycle, a data processor operating on a fixed sampling time for use with a fixed time interval, servo interrupt control cir-cuit calculates path movement data by determining appropriate incre-mental 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 inter~als 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 o~f-line teaching mode. The arrangement in Hohn 3,909,600 also requires a relatively complex and high speed computer for the path computations performed during the playback of the work cycle.
SUMMARY OF THE INVENTION
~t 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 off-line teaching 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 of the maximum dynamic capa-bilities of the manipulator arm to accomplish the work operations in 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 work operations with respect to a moving workpiece from recorded, pre-computed data; the on-line control apparatus during a replay of the work operations reconstructing a fixed path solution of arm _ 4 _ i~g2~9 movement as precomputed during an initial off-line teaching mode to perform the work operations in replay in mini~um execution time and in accordance with dynamic workpiece movement.
Briefly in accordance with one important aspect of the present invention, teach assist apparatus is provided for a pro-grammable manipulator arm to precompute a projected fixed path solu-tion 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 repr~senting the positions of the arm relative to the workpiece as the arm is moved during the inîtial 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 correspond-ing 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.
~1~927~
BRIEF DESCRIPTION _ THF. DRAWINGS
The invention both as to its organi~ation 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 move-ment of a manipulator apparatus in working location alongside a conveyor;
Figure 2 is a diagrammatic Tepresentation of the dynamic response of a manipulator to 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 l;
Figures 4, 5 and 6 are diagrammatic representations of various dynamic profiles illustrating velocity versus time relation-ships in accordance with the apparatus of the present invention of Figure l;
Figure 7 is a flow diagram representation of the general operation of the off-line teach assist apparatus of Figure l;
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;
Z7~
Figures 9, 10 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 12B 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 14 are flow diagram representations of one calculation or predict method utilized by the teach assist apparatus of the present invention of Figure 1 in connection with Figure 7;
Figures 15A and B when assembled as shown in Figure 15C are a logic and block diagTam of the control circuitry of the present invention of Figure l;
Figure 16 is a logic and block diagram representation of portions of the control circuitry of Figure 15; and Figure 17 is a diagrammatic representation of various timing signals and waveforms occurring in the circuitry and control apparatus of Figures 15 and 16.
.~
DESCRIPTION OF THE PREF~RRED 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 16 to an on-line computation and control unit 18 of the overall control apparatus 14. lhe 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 OpeTatiOn. The off-line teaching may be performed at the conveyor location or at a separate simulated 27~ c conveyor. ~uring 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 io execution of the predetermined work cycle with opti~al dynamic movement of the manipulator arm ll 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. -~he off-line teach assist computer 34 calculates ~-- 15 projected data that--r,epresents-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 ~y 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 o~ the work cycle. ~he on-line computation and control unit 18 reconstructs the fixed path solution from the aata read out of the memory 16 to control movement of the manipulator arm 11 to describe the work cycle 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 ~119~79 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 applications Serial Nos. 282,868 and 264,391 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 t he 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 7~
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 contTol 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 work-piece on the conveyor 12 in accordance with the actual dynamic conveyor mo~ement.
Thus, during the off-line teaching mode, the relatively powerful off-line teach assist computer unit 34 performs pre-computations 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 re-constructing 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 ~ime to reconstruct the precomputed optimal fixed path ~7 solution of manipulator arm movement relative to and in synchronism with the conveyor line 12 is minimized 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 approx-imate velocity verses time response characteristic when a manipulator arm is commanded to move from one point Pl to another point P2 in re-sponse to a comm~nd 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 por-tion 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 Pl 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), ~hen 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 _ 12 -~' ;~9 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 Pl 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 Pl-The additional execution time ~t 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 c~lculated on the basis of the maximum dynamic capabilit-ies of the manipulator and on the basis of the desired positional move, the distance between the points Pl and P2.
The representations in Figures 2 and 3 describe the behavior of a single axis of the manipulator or the behavior in a single Car-tesian 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 the two taught points Pl 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 +a MAX corresponding to the maximum acceleration rate of the manipulator arm 11, -a MAX corresponding to maximum arm deceleration, and V MAX corresponding to maximum arm velocity.
The off-line teach assist computer 34 then precomputes the optimum command signal 74 to move from point Pl 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 T~ to accelerate at the maximum acceleration +a MAX to the maximum velocity V ~AX at the end of the time interval Tl. The command signal 74 then commands the manip-ulator arm to move at the maximum velocity V MAX for a second pre-determined 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 -a MAX 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 Pl 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 co~mand signal 74 is commanded to move within its dynamic capabilities to describe a path form Pl to P2 without the overshoot and settling time ~t of Figure 2a. Thus, the execution time tb to move from Pl 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 ~t. The response characteristic of the manipulator arm ll 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 ~ove from Pl 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 Pl and P2.
The times Tl, 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 pre-computes the minimum execution to move between the two points P
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 Pl 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 Pl to P2.
Purther, the off-line teach assist computer 34 in response to input commands from the d~ta terminal 36 precomputes the manipulator arm movement with respect to projected conveyor motions to perform welds at the points Pl 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 Pl and P2 respectively.
~t 111927~ ( ~
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 t he 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 senerates position, velocity and acceleration command signals in accordance with conveyor movement. Re~erring now to FIGS. 4, 5 and 6, the of~-line teach assist computer 34 in a preCerred embodiment is programmed to-calculate and precompute fixed path solutions of optimum 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 t'ime is'~limited only by the dynamic characteristics ~~' ' 15 of the manipulator arm.- The calculation of-velocity,-acceleration and position~along-with-dynamic~tracking'~at'a~is-:all computed from static teach data and is performed in an off-line teaching mode without compute time restrictions. In this way, the pre-computation 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 precompuation and predict analyses may then be achieved by modifying the pro-gramming of the off-line teach assist computer 34 while utilizing 25 the same on-line computation and control unit 18.
For example, in FIG. 4 the dynamic characteristic plot . 80 of velocity versus time describes the movement of the manipulator arm 11 in one axis as t'he arm moves between two points P 1 and P
on the moving workpiece. The velocity versus time characteristic 80 represents the optimum fixed path manipulator axis movement as pre-computed 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 1, 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 P is within a pre-determined short move distance. The coordinates of the initial po,.nt PWl identified at eNl represent.any general point in a work 1~ 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.P 1 during the time portion referred to at weld 1. Throughout a predetermined weld ti~e interval, . the manipulator.arm welding tip.accurately tracks the movement ~~ '. 15 .,of the con,vey,or to_weld at,the point Pwl.--Th,e weld 1, step-~- -illustrates,.the weld.tip tracking the workpiece at the tracking velocity eNl 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 , 20 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,t~e manipulator 11 is . moved in accordance with the teach gun c,ontrol 38 to the static point P on the worXpiece. ~ext a weld 1 step is proqrammed Wl ~y inp~tting a weld command from the teach controls 38 or the data terminal 36 into the off-line teach assist computer 34. The off-line tea~h assist computer 34 calculates the weld 1, step 1 data to track the moving point P 1 of the workpiece on the conveyor 12 lll~Z79 and generates the data to define the tracking portion 82 at nearly constant velocity 6N to complete the weld at the point P at the calculated manipulator arm coordinates eN . 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 ~o. 721,805. ~he weld 1, step 1 calculations are precomputed at a projected maximum conveyor velocity V to provide a minimum welding time at the maY~imum allowed conveyor velocity V to ensure a sa~sfactory weld. - ' -~ ext, the teach controls 38-are utili~ed to move the welding tip on the manipulator arm 11 to the workpiece point P 2' 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 te'ach'ing''moa'ë t-o perform the traverse' from point 'P ' to point P~-' accounting for projected Wl W2 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 T to move the manipulator weld tip between the static points P and PW2 as projected into real time and accounting for projected conveyor movement. For the short move analysis illustrated in F~G. 4, the off-line teach assist computer 34 computes the move between the projected points P and P by defining an acceleration step 2 for a predetermined time interval T to the coordinates ~N , followed by a decelaration step 3 for a predetermined time interval T2 to the coordinates eN . The ~l~g~79 . ( point eN represents the projected coordinates in real time of the point PW2. The off-line teach assist computer then computes a weld 2, step 4, to weld and track the point P on the moving con-veyor 12. The computed weld 2, step 4, continues from eN3 to the manipulator arm coordinates eN4 corresponding to the projected point P 2 mcLng 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 portlon 92. The sum of the times Tl and T2 equals the minimum execution time T of the traverse be~ween the projected points PWl and P 2 moving at the conveyor velocity V .
Referring now to FIG. 8, the projected move between the points P and P is diagrammatically illustrated in an XYZ
coordinate system in conjunction with one type of manipulator arm ~_- 15 having six controlled degrees of f~eedom or control axes. The manipulator arm is represented by ~the vector segments h , r, h , -h3 and h and the control axes are represented by the angles ~, and the vector r. The angle ~ represents rotary axis movement of the arm segments hl and r about the Z
; 2 axis of the XYZ generalized coordinate system. The angle ~
represents up-down (tilt) axis movement of the arm segments hl 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 ~ 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 ~ represents yaw (wrist swivel) axis movement of the hand segment h3 about the segment h2 to define the point S
at the end of the segment h . The angle represents hand ' swivel axis movement of the hand segment h about the h segment.
! The hand segment h in the case of a welding manipulator is fitted with a welding gun to define the point T at the engagement of the welding tips of the welding gun.
In ~IG. 8, the manipulator welding gun tip, point T, is illustrated as positioned to the point P 1 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;~ ~owever,'for simplicity and for illustrative I0 purposes, it is assumed that the manipulator arm as shown in FIG. 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.
owever,''it'should be realized that the manipulator ~' 15 and conveyor du~ing t'h'e-off-line-teachi'n'g'mode'arë~not necessarily''' ' advanced~to''t~ëse projecte'd~positions~while teaching. ~Periodically, ~he 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 aDd advancement of the conveyor to the projected point P as illustrated in FIG. 8 may-occur in the off-~ine 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 P in FIG. 8 defines the static Wl workpiece point PWl at the real time conveyor position D in the program work cycle corresponding to the end of completion of the weld 1, step 1. Thus, the vector ~ Ss between P and the next 1119~
weld point P defines a static worXpiece distance ~ S represent-hg the distance between the points P and P . For simplicity ' Wl W2 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 of the workpiece point P due ~o projected conveyor displacement at maximum conveyor velocity V d~ring the execution time T of the manipulator arm traverse c s between points P and Pw2; i.e. the point PW2 i5 moving along ~ S at the conveyor velocity-while the arm is moving between ' the points P and Pw~ dynamic. Th~s the vector ~ S represents dynamic projected conveyor movement during the execution time T .
The vector segment ~ S TOTAL define,d between the points P and P dyn. represents the-total d-istance moved ~y the manipulator arm ~_ w2 tip ~etween the points P - and--P -dy~:. ,during the execution,time T
, Wl W2 s with projected conveyor movement.
After the off-line teach assist computer 34 computes the minimum execution time T for the arm to traverse from point P
to point P dyn. in accordance with the optimum predict stored program, the vector ~ s total and thus the coordinates of the point P dyn. are co~puted. Next, the coordinate data de'fined - by the point P dy,n., corresponding to point e~ in FIG. 4, are converted from the XYZ coordinate system to the manipulator axis cooridinates el 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 ~ to define the coordinate point eN4 at the end of the weld 2 step, again in ~ , .
~9`~
(~ ( manipulator axls coordinates e - ~ . The minimum e~:ecution time T along with the data eNl and aN3 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 Tl and the deceleration portion 92 over time interval T .
Thus, the sum of the time intervals Tl t T2 equals the minimum execution time T . The acceleration or deceleration portions 90 and 92 are also utilized to define the coordinates of the point an2 at ~hich the manipulator in the fixed path solution exits the 10 j acceleration phase 90 and enters the deceleration phase 92.
~~ ~- It should be noted that the vector a s corresponds to the number of conveyor displacement units moved by the conveyor during the execution time ~ in terms of the maximum conveyor velocity, Sc = Vc ~ ~ .T. The off-line teach assist computer 34 then has ~ _. . .
.-. precomputed the coordinate points for each axis of the manipulator, i.e.-el - through e6 values, for the projected points aNl, eN2, ~N3 and eN4. The move to the next weld point in the work cycle, e.g.
P~3 after the point PW2, is then taught and calculated in the same manner as described hereinbefore and as illustrated in FIG. 4.
$he Ph.2dyn point corresponds to the point eN in FIG. 4, ; After teaching a seires of such weld points, P - P , the off-l me teach assist computer 34 upon a command irom 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, pre-computed, projected fixed path solution in the on-line work cycle.
~9~7~
Considering now mo~ement 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 pre-computed 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 maximu~ short move distance, a constant velocity step, step 3, is precomputed at the maximum tip velocity Vn~ between the acceleration portion 90 and the deceleration portion 92. The overall optimal, execution time of the move Ts is then the sum of Tl, T 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 accelera-tion portion 90 and the deceleration portion 92. The times of the constant velocity mid steps 94, 96 and 98 are T 1' 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.
~9`:~79 Briefly, the on-line control apparatus 14 controls operation of the manipulator 10 in several modes, PTP, PTP~c), CP (ACCO=O), CP
(ACC~0) 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 (ACC~0) 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 = n VEL = 0 ACC = o CP:
ACC = 0: POS = 0n-1 ~ On- n-l x m VEL = ~ 0 x Kv x 64 N
ACC = o ~n ~ ~n-l ~ 9~79 CP:
ACC ~ 0: ~; POS ~n-l + 0m 1 ~ n-l x m x 1 x N
1,091,330, and these co-pending applications are hereby incor-porated 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 particu-larly to an arrangement wherehy 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 playback work cycle 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 la 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. 264,391 and 282,868, arrangements are shown wherein the programmable manipulator is taught a series of work operations to be performed 11~9'h79 on a workpiece during an initial teaching phase with the conveyor stationary or at various teach positions. The static teach data is projectedto account for projected conveyor movement at a predetermined conveyor velocity to transl'ate the static taught data.
The translated data iR then recorded. The recorded data is utilized during a playback of the work cycle in accordance wit~
conveyor movement to control movement of the manipulator to perform the work operations. While this ar~anqement 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.RrE.-Hohn on March 8, 1977. In this~arrangement, the-pro-gram is taught-with a stationary conveyor and al~ manipulator- arm positions are recordëa without any calculations for projected conveyor motion during pl~yback. 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 qenerated by~'the ' ' '' program and for tracking error ~ased on past performance to cipate further tracXing behavior. For example, tracXing appara-tus determines the position off-set as unprogrammed~position change from the conveyor position at which the arm positions are recorded.
~he tracking apparatus then off-sets the recorded arm positions accord-ingly. 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 con-veyor 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 exe-cution time in accordance with projected conveyor motion in an off-line teach mode.
Another arrangement disclosed in United States 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 predeter-mined path in space between two predetermined points. In a teach mvde, the manipulator arm coordinates for the two points are recorded along with a prede~ermined path velocity. In a play-back cycle, a data processor operating on a fixed sampling time for use with a fixed time interval, servo interrupt control cir-cuit calculates path movement data by determining appropriate incre-mental 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 inter~als 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 o~f-line teaching mode. The arrangement in Hohn 3,909,600 also requires a relatively complex and high speed computer for the path computations performed during the playback of the work cycle.
SUMMARY OF THE INVENTION
~t 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 off-line teaching 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 of the maximum dynamic capa-bilities of the manipulator arm to accomplish the work operations in 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 work operations with respect to a moving workpiece from recorded, pre-computed data; the on-line control apparatus during a replay of the work operations reconstructing a fixed path solution of arm _ 4 _ i~g2~9 movement as precomputed during an initial off-line teaching mode to perform the work operations in replay in mini~um execution time and in accordance with dynamic workpiece movement.
Briefly in accordance with one important aspect of the present invention, teach assist apparatus is provided for a pro-grammable manipulator arm to precompute a projected fixed path solu-tion 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 repr~senting the positions of the arm relative to the workpiece as the arm is moved during the inîtial 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 correspond-ing 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.
~1~927~
BRIEF DESCRIPTION _ THF. DRAWINGS
The invention both as to its organi~ation 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 move-ment of a manipulator apparatus in working location alongside a conveyor;
Figure 2 is a diagrammatic Tepresentation of the dynamic response of a manipulator to 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 l;
Figures 4, 5 and 6 are diagrammatic representations of various dynamic profiles illustrating velocity versus time relation-ships in accordance with the apparatus of the present invention of Figure l;
Figure 7 is a flow diagram representation of the general operation of the off-line teach assist apparatus of Figure l;
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;
Z7~
Figures 9, 10 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 12B 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 14 are flow diagram representations of one calculation or predict method utilized by the teach assist apparatus of the present invention of Figure 1 in connection with Figure 7;
Figures 15A and B when assembled as shown in Figure 15C are a logic and block diagTam of the control circuitry of the present invention of Figure l;
Figure 16 is a logic and block diagram representation of portions of the control circuitry of Figure 15; and Figure 17 is a diagrammatic representation of various timing signals and waveforms occurring in the circuitry and control apparatus of Figures 15 and 16.
.~
DESCRIPTION OF THE PREF~RRED 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 16 to an on-line computation and control unit 18 of the overall control apparatus 14. lhe 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 OpeTatiOn. The off-line teaching may be performed at the conveyor location or at a separate simulated 27~ c conveyor. ~uring 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 io execution of the predetermined work cycle with opti~al dynamic movement of the manipulator arm ll 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. -~he off-line teach assist computer 34 calculates ~-- 15 projected data that--r,epresents-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 ~y 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 o~ the work cycle. ~he on-line computation and control unit 18 reconstructs the fixed path solution from the aata read out of the memory 16 to control movement of the manipulator arm 11 to describe the work cycle 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 ~119~79 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 applications Serial Nos. 282,868 and 264,391 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 t he 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 7~
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 contTol 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 work-piece on the conveyor 12 in accordance with the actual dynamic conveyor mo~ement.
Thus, during the off-line teaching mode, the relatively powerful off-line teach assist computer unit 34 performs pre-computations 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 re-constructing 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 ~ime to reconstruct the precomputed optimal fixed path ~7 solution of manipulator arm movement relative to and in synchronism with the conveyor line 12 is minimized 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 approx-imate velocity verses time response characteristic when a manipulator arm is commanded to move from one point Pl to another point P2 in re-sponse to a comm~nd 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 por-tion 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 Pl 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), ~hen 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 _ 12 -~' ;~9 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 Pl 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 Pl-The additional execution time ~t 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 c~lculated on the basis of the maximum dynamic capabilit-ies of the manipulator and on the basis of the desired positional move, the distance between the points Pl and P2.
The representations in Figures 2 and 3 describe the behavior of a single axis of the manipulator or the behavior in a single Car-tesian 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 the two taught points Pl 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 +a MAX corresponding to the maximum acceleration rate of the manipulator arm 11, -a MAX corresponding to maximum arm deceleration, and V MAX corresponding to maximum arm velocity.
The off-line teach assist computer 34 then precomputes the optimum command signal 74 to move from point Pl 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 T~ to accelerate at the maximum acceleration +a MAX to the maximum velocity V ~AX at the end of the time interval Tl. The command signal 74 then commands the manip-ulator arm to move at the maximum velocity V MAX for a second pre-determined 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 -a MAX 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 Pl 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 co~mand signal 74 is commanded to move within its dynamic capabilities to describe a path form Pl to P2 without the overshoot and settling time ~t of Figure 2a. Thus, the execution time tb to move from Pl 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 ~t. The response characteristic of the manipulator arm ll 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 ~ove from Pl 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 Pl and P2.
The times Tl, 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 pre-computes the minimum execution to move between the two points P
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 Pl 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 Pl to P2.
Purther, the off-line teach assist computer 34 in response to input commands from the d~ta terminal 36 precomputes the manipulator arm movement with respect to projected conveyor motions to perform welds at the points Pl 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 Pl and P2 respectively.
~t 111927~ ( ~
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 t he 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 senerates position, velocity and acceleration command signals in accordance with conveyor movement. Re~erring now to FIGS. 4, 5 and 6, the of~-line teach assist computer 34 in a preCerred embodiment is programmed to-calculate and precompute fixed path solutions of optimum 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 t'ime is'~limited only by the dynamic characteristics ~~' ' 15 of the manipulator arm.- The calculation of-velocity,-acceleration and position~along-with-dynamic~tracking'~at'a~is-:all computed from static teach data and is performed in an off-line teaching mode without compute time restrictions. In this way, the pre-computation 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 precompuation and predict analyses may then be achieved by modifying the pro-gramming of the off-line teach assist computer 34 while utilizing 25 the same on-line computation and control unit 18.
For example, in FIG. 4 the dynamic characteristic plot . 80 of velocity versus time describes the movement of the manipulator arm 11 in one axis as t'he arm moves between two points P 1 and P
on the moving workpiece. The velocity versus time characteristic 80 represents the optimum fixed path manipulator axis movement as pre-computed 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 1, 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 P is within a pre-determined short move distance. The coordinates of the initial po,.nt PWl identified at eNl represent.any general point in a work 1~ 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.P 1 during the time portion referred to at weld 1. Throughout a predetermined weld ti~e interval, . the manipulator.arm welding tip.accurately tracks the movement ~~ '. 15 .,of the con,vey,or to_weld at,the point Pwl.--Th,e weld 1, step-~- -illustrates,.the weld.tip tracking the workpiece at the tracking velocity eNl 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 , 20 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,t~e manipulator 11 is . moved in accordance with the teach gun c,ontrol 38 to the static point P on the worXpiece. ~ext a weld 1 step is proqrammed Wl ~y inp~tting a weld command from the teach controls 38 or the data terminal 36 into the off-line teach assist computer 34. The off-line tea~h assist computer 34 calculates the weld 1, step 1 data to track the moving point P 1 of the workpiece on the conveyor 12 lll~Z79 and generates the data to define the tracking portion 82 at nearly constant velocity 6N to complete the weld at the point P at the calculated manipulator arm coordinates eN . 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 ~o. 721,805. ~he weld 1, step 1 calculations are precomputed at a projected maximum conveyor velocity V to provide a minimum welding time at the maY~imum allowed conveyor velocity V to ensure a sa~sfactory weld. - ' -~ ext, the teach controls 38-are utili~ed to move the welding tip on the manipulator arm 11 to the workpiece point P 2' 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 te'ach'ing''moa'ë t-o perform the traverse' from point 'P ' to point P~-' accounting for projected Wl W2 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 T to move the manipulator weld tip between the static points P and PW2 as projected into real time and accounting for projected conveyor movement. For the short move analysis illustrated in F~G. 4, the off-line teach assist computer 34 computes the move between the projected points P and P by defining an acceleration step 2 for a predetermined time interval T to the coordinates ~N , followed by a decelaration step 3 for a predetermined time interval T2 to the coordinates eN . The ~l~g~79 . ( point eN represents the projected coordinates in real time of the point PW2. The off-line teach assist computer then computes a weld 2, step 4, to weld and track the point P on the moving con-veyor 12. The computed weld 2, step 4, continues from eN3 to the manipulator arm coordinates eN4 corresponding to the projected point P 2 mcLng 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 portlon 92. The sum of the times Tl and T2 equals the minimum execution time T of the traverse be~ween the projected points PWl and P 2 moving at the conveyor velocity V .
Referring now to FIG. 8, the projected move between the points P and P is diagrammatically illustrated in an XYZ
coordinate system in conjunction with one type of manipulator arm ~_- 15 having six controlled degrees of f~eedom or control axes. The manipulator arm is represented by ~the vector segments h , r, h , -h3 and h and the control axes are represented by the angles ~, and the vector r. The angle ~ represents rotary axis movement of the arm segments hl and r about the Z
; 2 axis of the XYZ generalized coordinate system. The angle ~
represents up-down (tilt) axis movement of the arm segments hl 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 ~ 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 ~ represents yaw (wrist swivel) axis movement of the hand segment h3 about the segment h2 to define the point S
at the end of the segment h . The angle represents hand ' swivel axis movement of the hand segment h about the h segment.
! The hand segment h in the case of a welding manipulator is fitted with a welding gun to define the point T at the engagement of the welding tips of the welding gun.
In ~IG. 8, the manipulator welding gun tip, point T, is illustrated as positioned to the point P 1 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;~ ~owever,'for simplicity and for illustrative I0 purposes, it is assumed that the manipulator arm as shown in FIG. 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.
owever,''it'should be realized that the manipulator ~' 15 and conveyor du~ing t'h'e-off-line-teachi'n'g'mode'arë~not necessarily''' ' advanced~to''t~ëse projecte'd~positions~while teaching. ~Periodically, ~he 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 aDd advancement of the conveyor to the projected point P as illustrated in FIG. 8 may-occur in the off-~ine 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 P in FIG. 8 defines the static Wl workpiece point PWl at the real time conveyor position D in the program work cycle corresponding to the end of completion of the weld 1, step 1. Thus, the vector ~ Ss between P and the next 1119~
weld point P defines a static worXpiece distance ~ S represent-hg the distance between the points P and P . For simplicity ' Wl W2 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 of the workpiece point P due ~o projected conveyor displacement at maximum conveyor velocity V d~ring the execution time T of the manipulator arm traverse c s between points P and Pw2; i.e. the point PW2 i5 moving along ~ S at the conveyor velocity-while the arm is moving between ' the points P and Pw~ dynamic. Th~s the vector ~ S represents dynamic projected conveyor movement during the execution time T .
The vector segment ~ S TOTAL define,d between the points P and P dyn. represents the-total d-istance moved ~y the manipulator arm ~_ w2 tip ~etween the points P - and--P -dy~:. ,during the execution,time T
, Wl W2 s with projected conveyor movement.
After the off-line teach assist computer 34 computes the minimum execution time T for the arm to traverse from point P
to point P dyn. in accordance with the optimum predict stored program, the vector ~ s total and thus the coordinates of the point P dyn. are co~puted. Next, the coordinate data de'fined - by the point P dy,n., corresponding to point e~ in FIG. 4, are converted from the XYZ coordinate system to the manipulator axis cooridinates el 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 ~ to define the coordinate point eN4 at the end of the weld 2 step, again in ~ , .
~9`~
(~ ( manipulator axls coordinates e - ~ . The minimum e~:ecution time T along with the data eNl and aN3 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 Tl and the deceleration portion 92 over time interval T .
Thus, the sum of the time intervals Tl t T2 equals the minimum execution time T . The acceleration or deceleration portions 90 and 92 are also utilized to define the coordinates of the point an2 at ~hich the manipulator in the fixed path solution exits the 10 j acceleration phase 90 and enters the deceleration phase 92.
~~ ~- It should be noted that the vector a s corresponds to the number of conveyor displacement units moved by the conveyor during the execution time ~ in terms of the maximum conveyor velocity, Sc = Vc ~ ~ .T. The off-line teach assist computer 34 then has ~ _. . .
.-. precomputed the coordinate points for each axis of the manipulator, i.e.-el - through e6 values, for the projected points aNl, eN2, ~N3 and eN4. The move to the next weld point in the work cycle, e.g.
P~3 after the point PW2, is then taught and calculated in the same manner as described hereinbefore and as illustrated in FIG. 4.
$he Ph.2dyn point corresponds to the point eN in FIG. 4, ; After teaching a seires of such weld points, P - P , the off-l me teach assist computer 34 upon a command irom 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, pre-computed, projected fixed path solution in the on-line work cycle.
~9~7~
Considering now mo~ement 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 pre-computed 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 maximu~ short move distance, a constant velocity step, step 3, is precomputed at the maximum tip velocity Vn~ between the acceleration portion 90 and the deceleration portion 92. The overall optimal, execution time of the move Ts is then the sum of Tl, T 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 accelera-tion portion 90 and the deceleration portion 92. The times of the constant velocity mid steps 94, 96 and 98 are T 1' 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.
~9`:~79 Briefly, the on-line control apparatus 14 controls operation of the manipulator 10 in several modes, PTP, PTP~c), CP (ACCO=O), CP
(ACC~0) 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 (ACC~0) 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 = n VEL = 0 ACC = o CP:
ACC = 0: POS = 0n-1 ~ On- n-l x m VEL = ~ 0 x Kv x 64 N
ACC = o ~n ~ ~n-l ~ 9~79 CP:
ACC ~ 0: ~; POS ~n-l + 0m 1 ~ n-l x m x 1 x N
2 N Kv 64 ~NEW; VEL = 2 ~ 0KV 64 ~OLD
~; YEL = 0 n-l + (On - On - 1) x m = ~m ~; ACC =~\0 x Kv x 64 N
~ ~n n - l where m = interp. count N = the number of interpolation intervals in the step o = ~ 0/64 LSD conveyor change Kv - number of interpolation intervals/step ~ ep 9n = next position (next data Dn, the end of step n) On-l = previous position ~previous data Dn-l, the end of step . n-l) 0NEW = On = next velocity (end of step n) OOLD = ~n-l = previous velocity (end of step n-l) 0m = present velocity (commanded) n = present step identification The symbol On-l in on-line operation is always utilized to refer to the prev-ious position at the end of the last step data Dn 1 The symbol ~n is uti-lized 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 con-vention is utilized within the on-line computation and control unit 18 re-gardless of whether the step is a CP (ACC = O) or CP tACC f o) 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 de-termine whether the STATIC point N data is READY? If the determination for the entry of new static data input is no, .
lil9S:~9 , I
the program proceeds to another decision block 104 to determine ! whether OT~ER 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 5 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, S.~T CONTROL DATA7. If the control data has been entered.the.determination in.the decision block 106 is yes and the control.da.a is entered as denoted by the process block 108 . INPU~ CONTROL DATA. After the control data is entered, the pro-- gram flow returns to the program branch marXer A. If the f determination in block 106 is no, signifying that control data has not been entered at the terminal 36,..a decision block LOAD MAIN
. 15 CONTROL MEMORY?.llO is-entered. -If_the determination is~yes, the .- program flow proceeds-through-~-process block 112 where the internal , .
- program counter is set to N ~ 1 and on to a B program branch marker.
. Returning now to the program branch A, if the determination . 20 in the STATIC point N READY? decision block 102 i9 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 POI~T N DATA SET process blocX 114 wherein the .. static data from the manipulator encoders and the conveyor encoder 25 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.
:. .
.
. .
. .
. . J26-~9~7~
In the process block 116, a full precompuation of the optimal execution time for movement to the point N from the previous pro-gram point N-l is determined in accordance with a particular pro-gram stored in the computer 34. The details of the PASS ~1, PROCESS N STATIC block 116 are shown in FIG. 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-l 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. ~n the process block 116,-the dynamic par~
meters as discussed in connection with FIGS. 4 through 6 are computeda~
pr~ected with respect to conveyor movement, i~ the teach aqsist compu~ r 34 calculates the real time, projected coordinates for the point N
and the corresponding real time, projec.ed-conveyor position.
At this point in-the program:flow;--the program~-procëëds through ; the PASS ~1 process block 116 through a referencemarker E to anOUTPUT CONTE~TS OF CURR~NT 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 utili7ed by the operator to either advance the conveyor or to merely indicate the projected conveyor position-for the taught point N to ths 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 blocX 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 blcck 120 to the marker A.
.
~,~19~79 (- I
~ esuming the program flow at marXer B, when a command from the data terminal 36 is entered to load the main control memory with the previous taught points,. N, as accumulated in the computer 34, the program flow through branch B proceeds to a RETRIEVE /T ~CV STATIC FROM FILE process block 122. In the process block 122, the static data for each point ~ in Cartesian tra~sform format referred to as /T / is.recalled by the computer 34.
N CV
The /T / data was calculated and stored in the PASS .'l process bloAk 16.. The program flow continues through an : 10 .~ OF PROGRA~I? determination blocX 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 coun.er, the.
. program flow continues to the reference marker D. The end of . program is entered.for a particular point N = ~E/P by the data - 15 terminal ~6 and-s~ored in the computer 34. If the end of program has. been detected-for the point:~ being.processed, the end-of~~- -program latch would be set denoted by process blocX 126. The program flow then proceeds to the reference marker D.
-. Proceeding from the reference marker D, the teach assist : 20 computer program proceeds to a PASS ~2, P~OCESS N STATIC procesg - block 128. In process blocX 128, a ~ull predict or precomputation of the fixed path solution to accomplish the commanded move,- ~-1 to N, is accomplished as shown in.more detail in FIG. 14 and as .. will be explained in more detail hereinafter. Briefly, the PASS ~2 .
- 25 process block 128 performs the precompuation 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 ~9~79 dynamic profiles as described hereinbefore and illustrated in ~IGS. 4 throush 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 ~, the real t~me~ projected coordinates for the point N in each of the manip-UlalO axes along with the projected conveyor position are for-; 10 -mated-and ou~putted to the memory 16 as indicated by the process block--30. ~ r ~
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 coveyor movement in the real time worX cycle. A
process-block 132 represents the storage of the outputted data ~or the point ~ by the teach assist computer 34 for use in precomputing the move from the point N to the next taught point ~ I 1 during the next program loop through the PASS *2 process block 128.
In a preferred embodiment, additional data is also cal-culated 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 ~ as discussed hereinbefore 2S and as illustrated in FIGS. 4 through 6. The number of assigned interpolation intervals in one specific embodiment is one of a predeter~ined set of binary multiples of 16. The number of inter-polation intervals assigned to a particular step is equal to the next lowest binary multiple of 16 in the set below the number of 1~19279 conveyor LSD's calculated from the step. For example, considering a long move analysis, FIG. 5, each of the steps 2 through 5 for the move from the point N-l to N (corresponding for example to P to P ) is assigned one number in the set of interpolation Wl W2 intervals in accordance with the calculated number of projected conveyor displacement units for each of the steps 2 through 5.
Additionally a h velocity constant is also calculated for each of the steps and outputted to the memory 16 in a specific embodi-men~. The K .constant is equal to the number of assigned inter-polation intervals divided by the number of projected conveyor LSD's as discussed in the aforementioned a~plication Serial No. 721,805.
After the outputting of data into the memory 16, the program flow of FIG, 7 proceeds through a reference marker H to a determination block 134_to determine_if_the end of program latch has been set. If_t~e 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 Nll.
~he program flow proceeds through the process block 136 to the re~erence marker B.
Thus, the program flow continues through the program reference markers, B-D-H-B, for all the stored and taught points to retrive stored data in the computer 34, to compute the data representing the optimum dynamic move parameters for each point N, ( lll9Z79 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 ~.e e-n 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-Iine 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 ~_ .
: 15 welds in correspondencé' to movement and'dlsplacement 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.
' 20 Considering first a simplified Cartesian predict method ' and referring now to FIGS. 8 through 11, an optimum execution time Ts is co'mputed for each ~of the''moves between successive weld . . points in the work cycle on the basis of the maximum dynamic capa-bilities of the particular manipulator apparatus that is utilized.
~ 25 A~ discussed hereinbefore, the maximum dynamic parameters are identified as ~a~AX~ -aMAX and ~MAX Considering one speclfic .' manipulator apparatus, the maximum composite tip velocity V
- 'in the Cartesian domain is 30'inches per second. To perform the ~1~9279 , predict method calculation, it is also necessary to know the permissable range of the conveyor line velocity. The maximum oonveyor line velocity V 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 dis-placement during the execution time. The smaller the overall variation (range) in permissable conveyor velocity, the higher the ontimization 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 V is 6 inches per second, for example, along a predetermined orientation, Vc= 6 inches per second is utilized in the precomputation method.
~rpe nominal conveyor line for_example is 5 inches per second.
In the simplified Cartesian predict method under dis-cussion, the maximum conveyor velocity V of 6 inches per second is ; subtracted from the maximum composite tip velocity V~x f 30 inches per second to result in a relative maximum composite tip velocity V of 24 inches per second. This approach assumes the ~ R .
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 VMAx 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 detexmination as discussed hereinbefore is made on the basis of the static distance on the workpiece bet~een the two successive points PWl and PW2, ~ S in FIG. 8. The PW point corresponds to the previous welded point at the projected, real .!
tiTne conveyor position and the point PW corresponds to the next weld to be performed at the projected real time conveyor position at the time the PWl weld is finished. The Vector Ss ~1 corresponds to the static distance between the points PWl and P 2 and is calculated by the teach assist computer 34 from the manipulator encoder data as the teach operator teaches the two points P and ~ by moving the manipulator tip between the two Wl W2 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 3~. It .shou~d be realized that the distance ~ S is the same regardless of the conveyor position in the teaching mode.
In accordance with the parameters defined above, if the _ . _ 5 ~ S static distance between the two workpiece points P and P
s - Wl w2 is greater than five inches, the teach assist computer 34 defines and calculates a long move analysis. If the ~ S static distance is less the five inches, a short move analysis is utilized.
The maximum short move distance is calculated from the relationship ~ S maximum equals V MRmultiplied by one-half the total time to execute the acceleration and deceleration steps:
s M~X = 24 (Tl ~ T2) ~1) where Tl eguals the time to accelerate to maximum tip velocity from tracking velocity and T is the time requi~ed 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 accleration ~ 9~79 and deceleration steps are defined in effective time units correspond-ing 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 pex second.
The units for a ~ or velocity command are bits change/64 conveyor LSD's change and the units for ~ or acceleration command are bits cha~ge/
(64 CODveyOr LSD's change) . In one embodiment, the basic linear displacement unit, LSD, is .019563102 inches. If an a of MAX
115.01248 inches/sec. is assigned equal to:
2' i~hes/sec. ~ -.C1956312 "/LSD x _ x 64 conv. LSD's ~~ 6 "/se~.
then Tl = T2 - .208672 secs. Thus, Tl is approximately equal to 64 LSD's of change to accelerate from 6"/sec. to 30"/sec. If the maximum ~ip velocity V of 30 inches per second equals 3000 bits per second ' MAX' ' ' ' (BPS) in terms of the encoder output readngs, the particular manipulator apparatus is then capable of accelerating between a . . . _ . .. . ...
tracXing 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 laMAx and deceleration -a~L~X
then corresponds to a velocity change ~ V of 2400 B2S in a time interval ~ t of .208672 seconds or the time for tXe conveyor to move 64 ... . .. ... .
.~SD's at maxi.mum conveyor velocity. This corresponds to an acceleration of 12,50~ BPS at a maximum ~nvey,or velocity of 6 lnches per second. Substituting the above parameters, Tl - T2 = .208672 ~5 seconds into equation (1), the ~ SsMAX 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 FIG. 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 composlte velocity V in a short move. The times T and T2 for ( ~l19;i~79 ~
the acceleration and deceleration steps are less than the ,208672 seconds and are calculated in terms of the minimum execution time to traverse the distance between the points P and P at the pro~
Wl W2 .:
jected conveyor velocity corresponding to a predetermined number of conveyor linear displacement units, LSD's. The details to calculate .
Tl and T2 for a short move analysis will be explained in more .' detail after a consideration of the more generali~ed long move analysis....
For execution in real time in the on-line mode, the acceleration and deceleration steps are accomplished in an assigned '.
number of interpolation in,tervals, 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 ~o, 721,805, 32 interpolation intervals are assigned to a step wherein it has been caluated that-32 to-63-conveyor LSD's will be traversed ~' 15 durin,g_,the exeuction time of the .step ata maximum conveyor velocity..of 6 inches per,second..,, In,-t,~at 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 inter-polation intervals correspond to two conveyor LSD's as will be ., explained in detail hereinafter. . ,,' ,;
.,, ,,In.. one embodime,nt,. the.transi'tion or de~ermination ',' 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 ~ S 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 ~or optimum execution.
~ , -35-~1~9279 Considering now the details of the simplified Cartesian predict method and an example of a long move analysis, the opti~um execution time Ts for the move between the weld points P~ll and PW2 (Figure 5) on the workpiece is calculated from the following equation:
Ts = Tl ~ T2 M (2) where TM is the time r0quired for the constant velocity middle step between the acceleration and deceleration steps.
The teach assist computer 34 in accordance with the pTe-computation 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 ~Ss distance calculated from the manipulator encoder data defining the points PWl and PW2. As discussed hereinbefore, if the ~Ss distance is determined to be greater than S inches, a long move analysis is indicated. Por illustrative purposes assume that the ~Ss distance is c~;lculated to be 11 inches.
After determining the ~Ss, 11 inches for example, the optimum total execution time Ts is calculated by substituting the 2Q known quantities into equation (2), Ts = 2~.208672) + T sec. Thus, to define the overall time o~ the step Ts, 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 deceleratiQn step times Tl, T2 and the ~ Ss static distance between the points PWl and P~2:
Q Ss VMR Tl + VMR T2 + VMR TM ~ ) '~, ~,1 ;279 This may be rewritten as follows:
TM = ~ Ss ~ 1/2Tl - 1/2T2 (4) VMR
Further, the time for the step Ts 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:
~ STOTAL ~ Ss ~ Sc (5) where Q STOTAL is the vectorial sum in three dimensional space of the two components ~ Ss + ~ Sc. The ~ Sc corresponds to move-ment 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, ~ STOTAL defines the manipulator tip movement from the point PWl to the projected point Pw2dyn with conveyor movement at the maximum conveyor velocity. The time of the step Ts and the max-imum conveyor velocity Vc defines the quantity ~Sc:
~ Sc = Ts VC (6) Solving equation (6),/\Sc equals (.6670053) (6) or 4.00203 inches.
Substituting this value of ~ Sc into equation five, for simplicity in the present example assume that the conveyor movement is directly aligned with the X axis corresponding to a i vector:
/~ STOTAL= ~ Ss ~ i 4-00203 (7) Equation (7) defines the total move from points PWl to PW2d . The teach assist computer 34 has stored the calculation of ~ Ss as follows:
~Ss = -i~sx + . ~ ~sy + ~Asz (8) ~ - 37 -~19~
Thus, in vector notation, the coordinates of the translated and projected po1nt PW2 dynamic can be written as follows:
W2 dyn wl dyn ~ ~- TOTAL (9) Referring to the dynamic profile of FIG. 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 eN . The pos.itional data in each of the coordinate axes may be obtained ~lom the XYZ coordinates of the point P 2d 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 P (eN ) at the start of the weld 2 is also defined W2dyn 4 as follows:
. D = ~ D t D (10) , ., ~ eN4 . - eNl s where SD is the projected conveyor location.at point P
eN4 ~ W2 dynamic and ~ D is the projected conveyor location previously ~ Nl calculated and stored by the teach assist com~uter 34 corresponding to the projected point P (The point P may also be referred to Wl Wl as P ). ~he term D corresponds to the conveyor displacement Wl dyn. 9 in LSD'.s during the total time of the step T for the manipulator tip to move the distance ~ S . Thus, the term D is the pro-TOTAL S
jected conveyor movement in LSD's during the execution of the acceler-ation step, the constant velocity step, and the deceleration step and is defined as follows:
D = T V (11) s s C/f~/LSD
where ~ /LSD = .019563102 inches.
. In the above example, the conveyor displacement D
i during the time Ts of execution of the total !
.-38-step is calculated as .6670053 seconds times 6 inches per second.
equal to 4.0020318 inches or 204 conveyor LSD's for the overall move-ment, 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 D = TM - .2496613_- 76.56 or eN3 l'~SD ,0032605 76 LSD' s . An interpolation interval code representing 64 interpolation intervals is assigned to this step the next lowest binary multlple of 16. The total number of LSD's for the overall movement is defined:
: 10 D = D t D t D = T ~ S
S e~2 eN3 e~4 s - c (12) - ~ /\/LSD
. LSD
where D is the number of LSD's for the acceleration step 2, eN2 D is the number of LSD's for the deceleration step, T
. eN4 .. . - . . LSD
1~ 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 proiected conveyor.displacement for each caiculated step of the move in the program including the weld steps is outputted .. 20 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 corresponding to the point ~N was 1857 ., 'eNl . conveyor LSD's,the number of displacement units represented by the 25 quantity D 204 LSD's for example, is added to obtain ~ D . Then . s eN4 D = 204 ~ 1857 = 2061 LSD's. Similarly, ~ D is equal to ' eN4 eN2 1857 f 64 or 192L. For ~ D , the result is 1921 ~ 76 = 1997.
eN3 It should be apparent that in equation tl2) 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 conve~or at maximum conveyor velocities.
Further, knowing the real time, projected coordinates of the point PW2 or eN in manipulator 2xis joint data and .the co~responding projected conveyor position, the weld 2, step S can also be calculated. The calculation of the end point eN of the weld 2 is per~ormed by translating the manipulator coordinates of the W2dyn W2dyn time again based on a maximum conveyor velocity to perform a weld. This results in the coordinates eN at the end of the weld 2 and a corresponding projected conveyor position.
The next step in tXe 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 8N and eN, referring to FIG. 5. At this point, the coordinates of the points eN , eN and e~ are defined l 4 5 along with the corresponding projected conveyor positions. Up to this point, the analysis has been per~ormed with Cartesian ~YZ coordinates; the ~N , eN , eN coordinate data being transformed into joint coordinate data after calculation in the XYZ domain.
The profile of FIG. 5 describes manipulator tip movement in one Cartesian component direction of the XYZ domain. The representation in FIG. 8 describes a translation or movement in Cartesian space.
Considering the calculation of the coordinates for the points eN , eN a~d referring now additionally to FIGS. 9 through ll, FIG. lO similarly to FIG. 5 represents a manipulator axis velocity profile with respect to time. Each axis is .
~19Z79 ' I' accurately described by the profile of FIG. 10 according to a scaling factor. Briefly, to summarize the overall velocity pro-file of FIG. 10 for a long move analysis, step 1 corresponds to the ,-weld 1 performed with the manipulator tracking the point P on the workpiece. The weld 1 ends at ~N correspon~ing to P . At this Wl :' point, at the start of step 2, the velocity ramps up at a constant acce!e-ation during the time interval Tl from the point eN to the point ~N corresponding to a transis~ion from the velocity . 2 _ ~1 to e~ defining the slope in step 2. In step 3 the manipulator moves in each of the joint axes at a constant velocity eN3 during the T t me interval from the points eN to eN . In step 4, each ;
of the joint axes decelerates from the velocity eN to a tracking velocity a~ defining the point P the start or the weld 2.
4 w2 The manipulator during step 5, weld 2 at point P , tracXs the point P on the workpiece at the velocity ~ to the point ~N .
Referring now to FIG. 9, the accumulated position change in each joint axis is illustrated corresponding to the points in ~.
the velocity profile of FIG. 10. Thus, the position on the ordinate ; scale and the position profile corresponds to the integral of the velocity profile of FIG. 10. The position profile of FIG. 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 FIG. 11, the acceleration is plotted versus time and at any point is the differential of the velocity profile . . .
-41- `
. .
; ' ' ,'~.
.....
of FIG, 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 constant velocity eN to the point eN .
In step 2, the acceleration is constant from eN to eN to the point eN . At eN , the acceleration returns to zero at the start of the constant velocity step 3. In step 4, each joint axis decelerates from eN to e~ to the point eN . At ~N , the acceleration returns
~; YEL = 0 n-l + (On - On - 1) x m = ~m ~; ACC =~\0 x Kv x 64 N
~ ~n n - l where m = interp. count N = the number of interpolation intervals in the step o = ~ 0/64 LSD conveyor change Kv - number of interpolation intervals/step ~ ep 9n = next position (next data Dn, the end of step n) On-l = previous position ~previous data Dn-l, the end of step . n-l) 0NEW = On = next velocity (end of step n) OOLD = ~n-l = previous velocity (end of step n-l) 0m = present velocity (commanded) n = present step identification The symbol On-l in on-line operation is always utilized to refer to the prev-ious position at the end of the last step data Dn 1 The symbol ~n is uti-lized 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 con-vention is utilized within the on-line computation and control unit 18 re-gardless of whether the step is a CP (ACC = O) or CP tACC f o) 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 de-termine whether the STATIC point N data is READY? If the determination for the entry of new static data input is no, .
lil9S:~9 , I
the program proceeds to another decision block 104 to determine ! whether OT~ER 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 5 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, S.~T CONTROL DATA7. If the control data has been entered.the.determination in.the decision block 106 is yes and the control.da.a is entered as denoted by the process block 108 . INPU~ CONTROL DATA. After the control data is entered, the pro-- gram flow returns to the program branch marXer A. If the f determination in block 106 is no, signifying that control data has not been entered at the terminal 36,..a decision block LOAD MAIN
. 15 CONTROL MEMORY?.llO is-entered. -If_the determination is~yes, the .- program flow proceeds-through-~-process block 112 where the internal , .
- program counter is set to N ~ 1 and on to a B program branch marker.
. Returning now to the program branch A, if the determination . 20 in the STATIC point N READY? decision block 102 i9 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 POI~T N DATA SET process blocX 114 wherein the .. static data from the manipulator encoders and the conveyor encoder 25 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.
:. .
.
. .
. .
. . J26-~9~7~
In the process block 116, a full precompuation of the optimal execution time for movement to the point N from the previous pro-gram point N-l is determined in accordance with a particular pro-gram stored in the computer 34. The details of the PASS ~1, PROCESS N STATIC block 116 are shown in FIG. 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-l 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. ~n the process block 116,-the dynamic par~
meters as discussed in connection with FIGS. 4 through 6 are computeda~
pr~ected with respect to conveyor movement, i~ the teach aqsist compu~ r 34 calculates the real time, projected coordinates for the point N
and the corresponding real time, projec.ed-conveyor position.
At this point in-the program:flow;--the program~-procëëds through ; the PASS ~1 process block 116 through a referencemarker E to anOUTPUT CONTE~TS OF CURR~NT 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 utili7ed by the operator to either advance the conveyor or to merely indicate the projected conveyor position-for the taught point N to ths 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 blocX 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 blcck 120 to the marker A.
.
~,~19~79 (- I
~ esuming the program flow at marXer B, when a command from the data terminal 36 is entered to load the main control memory with the previous taught points,. N, as accumulated in the computer 34, the program flow through branch B proceeds to a RETRIEVE /T ~CV STATIC FROM FILE process block 122. In the process block 122, the static data for each point ~ in Cartesian tra~sform format referred to as /T / is.recalled by the computer 34.
N CV
The /T / data was calculated and stored in the PASS .'l process bloAk 16.. The program flow continues through an : 10 .~ OF PROGRA~I? determination blocX 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 coun.er, the.
. program flow continues to the reference marker D. The end of . program is entered.for a particular point N = ~E/P by the data - 15 terminal ~6 and-s~ored in the computer 34. If the end of program has. been detected-for the point:~ being.processed, the end-of~~- -program latch would be set denoted by process blocX 126. The program flow then proceeds to the reference marker D.
-. Proceeding from the reference marker D, the teach assist : 20 computer program proceeds to a PASS ~2, P~OCESS N STATIC procesg - block 128. In process blocX 128, a ~ull predict or precomputation of the fixed path solution to accomplish the commanded move,- ~-1 to N, is accomplished as shown in.more detail in FIG. 14 and as .. will be explained in more detail hereinafter. Briefly, the PASS ~2 .
- 25 process block 128 performs the precompuation 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 ~9~79 dynamic profiles as described hereinbefore and illustrated in ~IGS. 4 throush 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 ~, the real t~me~ projected coordinates for the point N in each of the manip-UlalO axes along with the projected conveyor position are for-; 10 -mated-and ou~putted to the memory 16 as indicated by the process block--30. ~ r ~
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 coveyor movement in the real time worX cycle. A
process-block 132 represents the storage of the outputted data ~or the point ~ by the teach assist computer 34 for use in precomputing the move from the point N to the next taught point ~ I 1 during the next program loop through the PASS *2 process block 128.
In a preferred embodiment, additional data is also cal-culated 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 ~ as discussed hereinbefore 2S and as illustrated in FIGS. 4 through 6. The number of assigned interpolation intervals in one specific embodiment is one of a predeter~ined set of binary multiples of 16. The number of inter-polation intervals assigned to a particular step is equal to the next lowest binary multiple of 16 in the set below the number of 1~19279 conveyor LSD's calculated from the step. For example, considering a long move analysis, FIG. 5, each of the steps 2 through 5 for the move from the point N-l to N (corresponding for example to P to P ) is assigned one number in the set of interpolation Wl W2 intervals in accordance with the calculated number of projected conveyor displacement units for each of the steps 2 through 5.
Additionally a h velocity constant is also calculated for each of the steps and outputted to the memory 16 in a specific embodi-men~. The K .constant is equal to the number of assigned inter-polation intervals divided by the number of projected conveyor LSD's as discussed in the aforementioned a~plication Serial No. 721,805.
After the outputting of data into the memory 16, the program flow of FIG, 7 proceeds through a reference marker H to a determination block 134_to determine_if_the end of program latch has been set. If_t~e 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 Nll.
~he program flow proceeds through the process block 136 to the re~erence marker B.
Thus, the program flow continues through the program reference markers, B-D-H-B, for all the stored and taught points to retrive stored data in the computer 34, to compute the data representing the optimum dynamic move parameters for each point N, ( lll9Z79 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 ~.e e-n 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-Iine 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 ~_ .
: 15 welds in correspondencé' to movement and'dlsplacement 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.
' 20 Considering first a simplified Cartesian predict method ' and referring now to FIGS. 8 through 11, an optimum execution time Ts is co'mputed for each ~of the''moves between successive weld . . points in the work cycle on the basis of the maximum dynamic capa-bilities of the particular manipulator apparatus that is utilized.
~ 25 A~ discussed hereinbefore, the maximum dynamic parameters are identified as ~a~AX~ -aMAX and ~MAX Considering one speclfic .' manipulator apparatus, the maximum composite tip velocity V
- 'in the Cartesian domain is 30'inches per second. To perform the ~1~9279 , predict method calculation, it is also necessary to know the permissable range of the conveyor line velocity. The maximum oonveyor line velocity V 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 dis-placement during the execution time. The smaller the overall variation (range) in permissable conveyor velocity, the higher the ontimization 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 V is 6 inches per second, for example, along a predetermined orientation, Vc= 6 inches per second is utilized in the precomputation method.
~rpe nominal conveyor line for_example is 5 inches per second.
In the simplified Cartesian predict method under dis-cussion, the maximum conveyor velocity V of 6 inches per second is ; subtracted from the maximum composite tip velocity V~x f 30 inches per second to result in a relative maximum composite tip velocity V of 24 inches per second. This approach assumes the ~ R .
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 VMAx 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 detexmination as discussed hereinbefore is made on the basis of the static distance on the workpiece bet~een the two successive points PWl and PW2, ~ S in FIG. 8. The PW point corresponds to the previous welded point at the projected, real .!
tiTne conveyor position and the point PW corresponds to the next weld to be performed at the projected real time conveyor position at the time the PWl weld is finished. The Vector Ss ~1 corresponds to the static distance between the points PWl and P 2 and is calculated by the teach assist computer 34 from the manipulator encoder data as the teach operator teaches the two points P and ~ by moving the manipulator tip between the two Wl W2 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 3~. It .shou~d be realized that the distance ~ S is the same regardless of the conveyor position in the teaching mode.
In accordance with the parameters defined above, if the _ . _ 5 ~ S static distance between the two workpiece points P and P
s - Wl w2 is greater than five inches, the teach assist computer 34 defines and calculates a long move analysis. If the ~ S static distance is less the five inches, a short move analysis is utilized.
The maximum short move distance is calculated from the relationship ~ S maximum equals V MRmultiplied by one-half the total time to execute the acceleration and deceleration steps:
s M~X = 24 (Tl ~ T2) ~1) where Tl eguals the time to accelerate to maximum tip velocity from tracking velocity and T is the time requi~ed 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 accleration ~ 9~79 and deceleration steps are defined in effective time units correspond-ing 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 pex second.
The units for a ~ or velocity command are bits change/64 conveyor LSD's change and the units for ~ or acceleration command are bits cha~ge/
(64 CODveyOr LSD's change) . In one embodiment, the basic linear displacement unit, LSD, is .019563102 inches. If an a of MAX
115.01248 inches/sec. is assigned equal to:
2' i~hes/sec. ~ -.C1956312 "/LSD x _ x 64 conv. LSD's ~~ 6 "/se~.
then Tl = T2 - .208672 secs. Thus, Tl is approximately equal to 64 LSD's of change to accelerate from 6"/sec. to 30"/sec. If the maximum ~ip velocity V of 30 inches per second equals 3000 bits per second ' MAX' ' ' ' (BPS) in terms of the encoder output readngs, the particular manipulator apparatus is then capable of accelerating between a . . . _ . .. . ...
tracXing 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 laMAx and deceleration -a~L~X
then corresponds to a velocity change ~ V of 2400 B2S in a time interval ~ t of .208672 seconds or the time for tXe conveyor to move 64 ... . .. ... .
.~SD's at maxi.mum conveyor velocity. This corresponds to an acceleration of 12,50~ BPS at a maximum ~nvey,or velocity of 6 lnches per second. Substituting the above parameters, Tl - T2 = .208672 ~5 seconds into equation (1), the ~ SsMAX 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 FIG. 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 composlte velocity V in a short move. The times T and T2 for ( ~l19;i~79 ~
the acceleration and deceleration steps are less than the ,208672 seconds and are calculated in terms of the minimum execution time to traverse the distance between the points P and P at the pro~
Wl W2 .:
jected conveyor velocity corresponding to a predetermined number of conveyor linear displacement units, LSD's. The details to calculate .
Tl and T2 for a short move analysis will be explained in more .' detail after a consideration of the more generali~ed long move analysis....
For execution in real time in the on-line mode, the acceleration and deceleration steps are accomplished in an assigned '.
number of interpolation in,tervals, 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 ~o, 721,805, 32 interpolation intervals are assigned to a step wherein it has been caluated that-32 to-63-conveyor LSD's will be traversed ~' 15 durin,g_,the exeuction time of the .step ata maximum conveyor velocity..of 6 inches per,second..,, In,-t,~at 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 inter-polation intervals correspond to two conveyor LSD's as will be ., explained in detail hereinafter. . ,,' ,;
.,, ,,In.. one embodime,nt,. the.transi'tion or de~ermination ',' 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 ~ S 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 ~or optimum execution.
~ , -35-~1~9279 Considering now the details of the simplified Cartesian predict method and an example of a long move analysis, the opti~um execution time Ts for the move between the weld points P~ll and PW2 (Figure 5) on the workpiece is calculated from the following equation:
Ts = Tl ~ T2 M (2) where TM is the time r0quired for the constant velocity middle step between the acceleration and deceleration steps.
The teach assist computer 34 in accordance with the pTe-computation 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 ~Ss distance calculated from the manipulator encoder data defining the points PWl and PW2. As discussed hereinbefore, if the ~Ss distance is determined to be greater than S inches, a long move analysis is indicated. Por illustrative purposes assume that the ~Ss distance is c~;lculated to be 11 inches.
After determining the ~Ss, 11 inches for example, the optimum total execution time Ts is calculated by substituting the 2Q known quantities into equation (2), Ts = 2~.208672) + T sec. Thus, to define the overall time o~ the step Ts, 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 deceleratiQn step times Tl, T2 and the ~ Ss static distance between the points PWl and P~2:
Q Ss VMR Tl + VMR T2 + VMR TM ~ ) '~, ~,1 ;279 This may be rewritten as follows:
TM = ~ Ss ~ 1/2Tl - 1/2T2 (4) VMR
Further, the time for the step Ts 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:
~ STOTAL ~ Ss ~ Sc (5) where Q STOTAL is the vectorial sum in three dimensional space of the two components ~ Ss + ~ Sc. The ~ Sc corresponds to move-ment 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, ~ STOTAL defines the manipulator tip movement from the point PWl to the projected point Pw2dyn with conveyor movement at the maximum conveyor velocity. The time of the step Ts and the max-imum conveyor velocity Vc defines the quantity ~Sc:
~ Sc = Ts VC (6) Solving equation (6),/\Sc equals (.6670053) (6) or 4.00203 inches.
Substituting this value of ~ Sc into equation five, for simplicity in the present example assume that the conveyor movement is directly aligned with the X axis corresponding to a i vector:
/~ STOTAL= ~ Ss ~ i 4-00203 (7) Equation (7) defines the total move from points PWl to PW2d . The teach assist computer 34 has stored the calculation of ~ Ss as follows:
~Ss = -i~sx + . ~ ~sy + ~Asz (8) ~ - 37 -~19~
Thus, in vector notation, the coordinates of the translated and projected po1nt PW2 dynamic can be written as follows:
W2 dyn wl dyn ~ ~- TOTAL (9) Referring to the dynamic profile of FIG. 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 eN . The pos.itional data in each of the coordinate axes may be obtained ~lom the XYZ coordinates of the point P 2d 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 P (eN ) at the start of the weld 2 is also defined W2dyn 4 as follows:
. D = ~ D t D (10) , ., ~ eN4 . - eNl s where SD is the projected conveyor location.at point P
eN4 ~ W2 dynamic and ~ D is the projected conveyor location previously ~ Nl calculated and stored by the teach assist com~uter 34 corresponding to the projected point P (The point P may also be referred to Wl Wl as P ). ~he term D corresponds to the conveyor displacement Wl dyn. 9 in LSD'.s during the total time of the step T for the manipulator tip to move the distance ~ S . Thus, the term D is the pro-TOTAL S
jected conveyor movement in LSD's during the execution of the acceler-ation step, the constant velocity step, and the deceleration step and is defined as follows:
D = T V (11) s s C/f~/LSD
where ~ /LSD = .019563102 inches.
. In the above example, the conveyor displacement D
i during the time Ts of execution of the total !
.-38-step is calculated as .6670053 seconds times 6 inches per second.
equal to 4.0020318 inches or 204 conveyor LSD's for the overall move-ment, 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 D = TM - .2496613_- 76.56 or eN3 l'~SD ,0032605 76 LSD' s . An interpolation interval code representing 64 interpolation intervals is assigned to this step the next lowest binary multlple of 16. The total number of LSD's for the overall movement is defined:
: 10 D = D t D t D = T ~ S
S e~2 eN3 e~4 s - c (12) - ~ /\/LSD
. LSD
where D is the number of LSD's for the acceleration step 2, eN2 D is the number of LSD's for the deceleration step, T
. eN4 .. . - . . LSD
1~ 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 proiected conveyor.displacement for each caiculated step of the move in the program including the weld steps is outputted .. 20 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 corresponding to the point ~N was 1857 ., 'eNl . conveyor LSD's,the number of displacement units represented by the 25 quantity D 204 LSD's for example, is added to obtain ~ D . Then . s eN4 D = 204 ~ 1857 = 2061 LSD's. Similarly, ~ D is equal to ' eN4 eN2 1857 f 64 or 192L. For ~ D , the result is 1921 ~ 76 = 1997.
eN3 It should be apparent that in equation tl2) 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 conve~or at maximum conveyor velocities.
Further, knowing the real time, projected coordinates of the point PW2 or eN in manipulator 2xis joint data and .the co~responding projected conveyor position, the weld 2, step S can also be calculated. The calculation of the end point eN of the weld 2 is per~ormed by translating the manipulator coordinates of the W2dyn W2dyn time again based on a maximum conveyor velocity to perform a weld. This results in the coordinates eN at the end of the weld 2 and a corresponding projected conveyor position.
The next step in tXe 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 8N and eN, referring to FIG. 5. At this point, the coordinates of the points eN , eN and e~ are defined l 4 5 along with the corresponding projected conveyor positions. Up to this point, the analysis has been per~ormed with Cartesian ~YZ coordinates; the ~N , eN , eN coordinate data being transformed into joint coordinate data after calculation in the XYZ domain.
The profile of FIG. 5 describes manipulator tip movement in one Cartesian component direction of the XYZ domain. The representation in FIG. 8 describes a translation or movement in Cartesian space.
Considering the calculation of the coordinates for the points eN , eN a~d referring now additionally to FIGS. 9 through ll, FIG. lO similarly to FIG. 5 represents a manipulator axis velocity profile with respect to time. Each axis is .
~19Z79 ' I' accurately described by the profile of FIG. 10 according to a scaling factor. Briefly, to summarize the overall velocity pro-file of FIG. 10 for a long move analysis, step 1 corresponds to the ,-weld 1 performed with the manipulator tracking the point P on the workpiece. The weld 1 ends at ~N correspon~ing to P . At this Wl :' point, at the start of step 2, the velocity ramps up at a constant acce!e-ation during the time interval Tl from the point eN to the point ~N corresponding to a transis~ion from the velocity . 2 _ ~1 to e~ defining the slope in step 2. In step 3 the manipulator moves in each of the joint axes at a constant velocity eN3 during the T t me interval from the points eN to eN . In step 4, each ;
of the joint axes decelerates from the velocity eN to a tracking velocity a~ defining the point P the start or the weld 2.
4 w2 The manipulator during step 5, weld 2 at point P , tracXs the point P on the workpiece at the velocity ~ to the point ~N .
Referring now to FIG. 9, the accumulated position change in each joint axis is illustrated corresponding to the points in ~.
the velocity profile of FIG. 10. Thus, the position on the ordinate ; scale and the position profile corresponds to the integral of the velocity profile of FIG. 10. The position profile of FIG. 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 FIG. 11, the acceleration is plotted versus time and at any point is the differential of the velocity profile . . .
-41- `
. .
; ' ' ,'~.
.....
of FIG, 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 constant velocity eN to the point eN .
In step 2, the acceleration is constant from eN to eN to the point eN . At eN , the acceleration returns to zero at the start of the constant velocity step 3. In step 4, each joint axis decelerates from eN to e~ to the point eN . At ~N , the acceleration returns
3 4 4 4 to approximately zero during the weld 2 step 5 to perform the ~-e;d ~rough the point eN .
` Considering now the calculation of the coc~dinates of the points ëN and eN , the following e~uation-is- utilized to determine the total positional change ~ eN equal to e~4 - 9N
during the steps 2, 3 and 4 for each joint axis:
N4 Nl~ .
( N3 Nl) 1 ~ N3 M ~, (eN3 ~N5) T2 ~ : ~ ' ~ (13) . ,~, ~, ~
The various quantities in equation (13) as discussed hereina~ove are identified in FIG. 10. The quantities ~ ~ and ~ correspond to the areas 2, 3 and 4 identified in FIG. 10 and are the positional change in the particular axis profile during the respective steps 2, 3 and 4. For example the first area ~ 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 ~ during the step 2 interval from eN
to eN is defined by the triangular area ~ and the rectang~lar area ~ The overall composite area relationship is illuatrated in the following equation (setting Tl ~ T2 in the simplified Cartesian predict analysis):
.:
~ ~ (' ,.
(e t e ) T = e T + ~ (e - e ) . T (14) N3 Nl 1 Nl 1 . N2 Nl The triangular area of ~ is given by the formula for the a'rea of a,tri-angle; ~ the base times the height. The base of'the triangle is T and the height of the triang;le : is e - e N2 N l Solving equation 13 for e results in the ~ollowing~
expression:
e = (e - e ) - ( e ~ e ) T
N3 N~ Nl_ Nl N5 1 ( 15 ) T 1 ~ TM 2 T + T~,~
In examining eguation 15, it can be seen that e can be calculated ~3 for each of the axes, from the above expression since the quantities o e , e , e , ~ T and T are known quantities previously cal-Nl N4 Nl N5, 1 . M
xulated and stored. The e and the e velocities are calculated Nl N5 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 e = e - e , where T is the time of the weld 2 5tep 5. - T
W
To co~plete the solution for e and e , the following equations are utilized to define these parameters'in terms of' the previously known and calculated quantities:
e = e ~T (e ~ e N2 Nl 1 N2 Nl ( 16 ) - e = e ~ ~ .T ~17) Equations 16 and 17 are derived from similar graphical analysis and the areas discussed herein~efore.
2S Thus, in accordance with the simplified Cartesian predict method, the velocity profile for minimum execution time to move between the point P and P is calculated along with the welds 1 Wl W2 ~ t and 2. ~or the long move analysis, the calculated, real time pro-jected positional data for each of the manipulator axes is recorded, e , e , e and e N2 (1-6) N3(1-6) N4(1-6) N5(1-6) In xesponse to the teach operator mcvir.g the manipulator tip between the points P and P on the static workpiece, the Wl W2 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 repLesented by the velocity profile in ~IG. 10 corresponding to the aceeleration 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 pre-eomputed optimum fixed path solution during replay of the program , . -~ 15 in aecordance with movement of the conveyor. The corresponding .. . .... . ...
conveyor data as discussed hereinabove is also computed andformated for recording into the main control ~emory with the positional joint ,axis data points.
For example, considering the long move analysis example discussed hereinbefore, the following would be reeorded into the memory 16:
. .
STEP MODE DATAINTERP INTERVALS Kv STEP 1 WELD 1 eN ~W~ N~ 1 2N
1(1-6), D(where 2 ~ WIX~2 ) WD
eNl STEP 2 CP (ACC~0) eN 64 2~1-6),~ D
eN2 STEP 3 CP~ACC-0) e ~D 64 64/,76 N3 (1-6)~ ~N3 STEP 4 Cp(Accro) eN 64
` Considering now the calculation of the coc~dinates of the points ëN and eN , the following e~uation-is- utilized to determine the total positional change ~ eN equal to e~4 - 9N
during the steps 2, 3 and 4 for each joint axis:
N4 Nl~ .
( N3 Nl) 1 ~ N3 M ~, (eN3 ~N5) T2 ~ : ~ ' ~ (13) . ,~, ~, ~
The various quantities in equation (13) as discussed hereina~ove are identified in FIG. 10. The quantities ~ ~ and ~ correspond to the areas 2, 3 and 4 identified in FIG. 10 and are the positional change in the particular axis profile during the respective steps 2, 3 and 4. For example the first area ~ 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 ~ during the step 2 interval from eN
to eN is defined by the triangular area ~ and the rectang~lar area ~ The overall composite area relationship is illuatrated in the following equation (setting Tl ~ T2 in the simplified Cartesian predict analysis):
.:
~ ~ (' ,.
(e t e ) T = e T + ~ (e - e ) . T (14) N3 Nl 1 Nl 1 . N2 Nl The triangular area of ~ is given by the formula for the a'rea of a,tri-angle; ~ the base times the height. The base of'the triangle is T and the height of the triang;le : is e - e N2 N l Solving equation 13 for e results in the ~ollowing~
expression:
e = (e - e ) - ( e ~ e ) T
N3 N~ Nl_ Nl N5 1 ( 15 ) T 1 ~ TM 2 T + T~,~
In examining eguation 15, it can be seen that e can be calculated ~3 for each of the axes, from the above expression since the quantities o e , e , e , ~ T and T are known quantities previously cal-Nl N4 Nl N5, 1 . M
xulated and stored. The e and the e velocities are calculated Nl N5 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 e = e - e , where T is the time of the weld 2 5tep 5. - T
W
To co~plete the solution for e and e , the following equations are utilized to define these parameters'in terms of' the previously known and calculated quantities:
e = e ~T (e ~ e N2 Nl 1 N2 Nl ( 16 ) - e = e ~ ~ .T ~17) Equations 16 and 17 are derived from similar graphical analysis and the areas discussed herein~efore.
2S Thus, in accordance with the simplified Cartesian predict method, the velocity profile for minimum execution time to move between the point P and P is calculated along with the welds 1 Wl W2 ~ t and 2. ~or the long move analysis, the calculated, real time pro-jected positional data for each of the manipulator axes is recorded, e , e , e and e N2 (1-6) N3(1-6) N4(1-6) N5(1-6) In xesponse to the teach operator mcvir.g the manipulator tip between the points P and P on the static workpiece, the Wl W2 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 repLesented by the velocity profile in ~IG. 10 corresponding to the aceeleration 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 pre-eomputed optimum fixed path solution during replay of the program , . -~ 15 in aecordance with movement of the conveyor. The corresponding .. . .... . ...
conveyor data as discussed hereinabove is also computed andformated for recording into the main control ~emory with the positional joint ,axis data points.
For example, considering the long move analysis example discussed hereinbefore, the following would be reeorded into the memory 16:
. .
STEP MODE DATAINTERP INTERVALS Kv STEP 1 WELD 1 eN ~W~ N~ 1 2N
1(1-6), D(where 2 ~ WIX~2 ) WD
eNl STEP 2 CP (ACC~0) eN 64 2~1-6),~ D
eN2 STEP 3 CP~ACC-0) e ~D 64 64/,76 N3 (1-6)~ ~N3 STEP 4 Cp(Accro) eN 64
4 (1-6) ;~ D
~N4 STEP S WELD 2 eN WD N
(1 6) ,~D(where 2N~WD~2N~ 2 7~
(.. ( 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 s less than the specific maximum for the particular manipulator apparatus such as ~ 3,000 BPS. ~urther, a check is also made to ensure that the accelerations commanded a3-e within the specified limits such as lessthan ~ 2500 BPS ~ /64 LSD's or approximately 12,500 BPS .
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 ~elow 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 synchr~nized to conveyor advancement and also to conveyor velocity.
Therefore, the precomputations are optimized ~or maxim~m conveyor line speed. However, it can be scen that if the line velocity is considerably slower than the maximum line velocity, no significant overall loss of program optimization is involved.
As the worXpiece moves more slowly past the manipulator ~5 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 worXpiece 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 ~119~7~
. ,;;.
speed variations due to the synchronization. Purther, in the on-line playbacX, the position, velocity and acceleration commands issued by the on-line computation and control unit 1~ (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 shQuld be noted that the calculations performed by the t~a_h assist computer program maintain exact position and velocity integrity at the beginning and end of each of the acceleration, deceleration or constant ~elocity steps; i.e. linear algebra in the e domain is utilized to match the defined termination parameters.
Thus, the absolute posltion accuracy between the end points of the various steps may depart somewhat from that projected or desired.
15In 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.
2~ Thus, when considering a long move analysis as described hereinbefore in connection with FIGS, 9 through 11, 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 ~5 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 27~
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 FIG. 6. For a range of three to four times the allowable error, four steps are used. In considering the above checking programs for ~elocity, acceleration and position, it should be noted that the off-line co~lp~te 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 per~ormed by the teach assist computer 34 when it is desired to define two .- 15 constant velocity steps 3a and 3b in lieu of the single~step 3, (the constant velocities ca~culated-are~designated as e and e N3a N3b for the two steps 3a and 3b respectively, e defines the position N3a between the steps ~a and 3b:
e = 2 (e ~ e ) - e . T (18) N3a N3a Nl Nl Tl t 2T
M
e = 2(e - e ) - e . T
N3bN4 N3a N4 1 (19) T ~2TM
1 ~ 2 . 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~ where the static distance on the workpiece ~ S between two points P 1 and P is less than 5 inches.
The 5 inch maximum for a short move analysis and the t~an~ition poi~t ~9;~79 to a long move analysis is determined by calculating the maximum distance that c.~ be traversed without exceeding the 24 inches per seconc V of the manipulator tip and with maximum acceleration and ~R
deceleration. This time T ~ T for the maximum short move as dis-cussed hereinbefore is approximately .208672 Y 2 = .417344 secs. at the m~ximum conveyor speed of 6 inches per second. This time corres~onds to a conveyor displacement of 2 x 64 conveyor LSD's at the maximum conveyor line speed. In a specific embodiment where the lowest ~um~er 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 T 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 s1mplified Cartesian predict method proceeds similarly to the long move analysis discussed hereinbefore. ~owever, since no constant vel~ ity step is required, the calculations are simplified. The time required for the step T equals T I T . In one arrangement, the time T for s 1 2 s 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 ~ S referring to FIG. 8 is also fixed from : equation 6 as T x V = 2(.208672 x (6 inches per second)- 2.50406 s c inches. The ~ S total for the step is similarly calculated according to equation (5~ and the coordinates of the point P
referring to FIG. 4, the start of the next weld e are then found ~9~79 in XYZ coordinates from equation [9) in terms of the previous point data and the ~ S . The corresponding conveyor position is .
TOTAL . .
also calculated by adding 128 conveyor LSD's to the previous conveyor .
- location at eN . Further, the weld step 2 is calculated to obtain ..
.
the coordinates of the point e and the corresponding conveyor ~4 location. All the coordinate data for the overall move of step$ 1, 2, 3 and 4 are now known including eN , ~ and eN and the time of 1 3 4 .-tlle step T . The only quantity remaining to be calculated is the end point of.step 2 eN the transistion between the acceleration -and deceleration steps 2.and 3,.and the.corresponding velocity e The velocity eN is derived from the following equations by defining the areas as shown in FIG. 4 similar to that in accordance with the ..
long move analysis above in equations (13) through tl5). ..
e = eN - ~N = ~(eN2~ eNl) T ~ N2~ 3) 1 (20) . 15 eN = t~N - eN )/T - ~N - ~8N (21) 3 1 1 1 3 t Equation (21) is a simplified form of equation 20. After obtaining ..
eN , eN 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 FIG. 4 are the same parameters ..
recorded concerning the long move analysis in steps 1, 2, 4 and
~N4 STEP S WELD 2 eN WD N
(1 6) ,~D(where 2N~WD~2N~ 2 7~
(.. ( 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 s less than the specific maximum for the particular manipulator apparatus such as ~ 3,000 BPS. ~urther, a check is also made to ensure that the accelerations commanded a3-e within the specified limits such as lessthan ~ 2500 BPS ~ /64 LSD's or approximately 12,500 BPS .
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 ~elow 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 synchr~nized to conveyor advancement and also to conveyor velocity.
Therefore, the precomputations are optimized ~or maxim~m conveyor line speed. However, it can be scen that if the line velocity is considerably slower than the maximum line velocity, no significant overall loss of program optimization is involved.
As the worXpiece moves more slowly past the manipulator ~5 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 worXpiece 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 ~119~7~
. ,;;.
speed variations due to the synchronization. Purther, in the on-line playbacX, the position, velocity and acceleration commands issued by the on-line computation and control unit 1~ (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 shQuld be noted that the calculations performed by the t~a_h assist computer program maintain exact position and velocity integrity at the beginning and end of each of the acceleration, deceleration or constant ~elocity steps; i.e. linear algebra in the e domain is utilized to match the defined termination parameters.
Thus, the absolute posltion accuracy between the end points of the various steps may depart somewhat from that projected or desired.
15In 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.
2~ Thus, when considering a long move analysis as described hereinbefore in connection with FIGS, 9 through 11, 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 ~5 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 27~
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 FIG. 6. For a range of three to four times the allowable error, four steps are used. In considering the above checking programs for ~elocity, acceleration and position, it should be noted that the off-line co~lp~te 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 per~ormed by the teach assist computer 34 when it is desired to define two .- 15 constant velocity steps 3a and 3b in lieu of the single~step 3, (the constant velocities ca~culated-are~designated as e and e N3a N3b for the two steps 3a and 3b respectively, e defines the position N3a between the steps ~a and 3b:
e = 2 (e ~ e ) - e . T (18) N3a N3a Nl Nl Tl t 2T
M
e = 2(e - e ) - e . T
N3bN4 N3a N4 1 (19) T ~2TM
1 ~ 2 . 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~ where the static distance on the workpiece ~ S between two points P 1 and P is less than 5 inches.
The 5 inch maximum for a short move analysis and the t~an~ition poi~t ~9;~79 to a long move analysis is determined by calculating the maximum distance that c.~ be traversed without exceeding the 24 inches per seconc V of the manipulator tip and with maximum acceleration and ~R
deceleration. This time T ~ T for the maximum short move as dis-cussed hereinbefore is approximately .208672 Y 2 = .417344 secs. at the m~ximum conveyor speed of 6 inches per second. This time corres~onds to a conveyor displacement of 2 x 64 conveyor LSD's at the maximum conveyor line speed. In a specific embodiment where the lowest ~um~er 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 T 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 s1mplified Cartesian predict method proceeds similarly to the long move analysis discussed hereinbefore. ~owever, since no constant vel~ ity step is required, the calculations are simplified. The time required for the step T equals T I T . In one arrangement, the time T for s 1 2 s 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 ~ S referring to FIG. 8 is also fixed from : equation 6 as T x V = 2(.208672 x (6 inches per second)- 2.50406 s c inches. The ~ S total for the step is similarly calculated according to equation (5~ and the coordinates of the point P
referring to FIG. 4, the start of the next weld e are then found ~9~79 in XYZ coordinates from equation [9) in terms of the previous point data and the ~ S . The corresponding conveyor position is .
TOTAL . .
also calculated by adding 128 conveyor LSD's to the previous conveyor .
- location at eN . Further, the weld step 2 is calculated to obtain ..
.
the coordinates of the point e and the corresponding conveyor ~4 location. All the coordinate data for the overall move of step$ 1, 2, 3 and 4 are now known including eN , ~ and eN and the time of 1 3 4 .-tlle step T . The only quantity remaining to be calculated is the end point of.step 2 eN the transistion between the acceleration -and deceleration steps 2.and 3,.and the.corresponding velocity e The velocity eN is derived from the following equations by defining the areas as shown in FIG. 4 similar to that in accordance with the ..
long move analysis above in equations (13) through tl5). ..
e = eN - ~N = ~(eN2~ eNl) T ~ N2~ 3) 1 (20) . 15 eN = t~N - eN )/T - ~N - ~8N (21) 3 1 1 1 3 t Equation (21) is a simplified form of equation 20. After obtaining ..
eN , eN 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 FIG. 4 are the same parameters ..
recorded concerning the long move analysis in steps 1, 2, 4 and
5 of FIG. S. -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 T and T 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.
~lL19279 Thus, the simplified Cartesian predict or precomputation method descri~ed 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 prov~des accurate data for a spot welding program and has been found s~-~is~actory for most work cycle applications of this type, it shoùld be realized-that other predict methods utilizing ~ifferent calculation programs to define the dynamic profiles including welding steps, acceleration steps, constant velocity steps and deceleration steps are also possible where more precice program optimization is desired.
In this regard it should be~-real-ized~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 execu-tion 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.
1~19;279 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 a~is 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 FIG. 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 FIGS. 13 and 14 respectively. A diagrammatic representation of the computation points in any of the manipulator axes is illustrated in FIG. 12.
The following definitions and relationship are useful in considering the operations described in the flow charts FIGS.
13 and 14 and the diagra~matic representation of FIG. 12.
( 1~1927~ (-N represents the current point for which the precomputations (22) of the fixed path solution are being performed, i.e. the move fxom N - 1 to N; - !
N-l represents the previous point for which the pre-computations have been performed to move to the point N-l; (23) /E ~ 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 con-veyor register i:e. CV is equivalent to the sy~bol ~D as discussed hereinbefore; ............................................ . .
~T /CV represents the Cartesian transform of the data . (25) /E / at the point N with vector definition of the manipulator hand of the manipulator e-.g~ the Cartesian coordinates of the point S in:FIG. 8 and ~he direction cosines in each coordinate axis for the vector segments RS and ST;
/E / represents the set of manipulator axis data in : ~ CV ~26) 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;
E , E , E , E represents the corresponding ~IDI MID1 MID2 MID2 (27 positions and velocities at the end points of the middle constant velocity step for advance to the Point ~ as illustrated in FIG. 12 .
: Considering now the basic calculations and operations ¦ 25 performed for the simplifiea axis predict method illustrated in FIGS. 13 and 14, reference is made to FIGS. 12a and 12b. In FIG.
12a, the short move analysis is diagrammatically represented and in FIG. 12b the long move analysis is diagrammatically represented..
In the case of the short move analysis, FIG~ 12a, the following relationship describes the basis.for calculating the _52-;Z7!~ ~ ( execution time for each manipulator axis:
~ s ~ dyn ~ TOTAL (28) where ~ e = eN . 2T and ~ eN = eN - e . Thus, the dyn 5 1 s N-l total positional change ~ e for each manipulator axes for TOTAL
the total move from point N-l to point N is calc~lated by summing :the portion A ed representing the trackinq of the point N as tl~e con~eyor moves with projected mo~ion during the time of the move, T l ~ = 2Tl (,assume T = T2) and the portion ~ eN representing the movement of the manipulator between the points N-l and N with the conveyor stopped at the position corresponding to 0 ; i.e.
N-l e represents the s.atic positional change. The quantity ~ e Ng of equation (28) may be rewritten as follows:
- s s 1 (29) The quantity ~ e is also defined from FIG. 12a by calculating the trapezoidal areas denoted ~ and ~ :
.- ; ~ . . :
~e=~(e f e ) T ~ ~(e ~ e )l~ (30) ~ ~(~
Setting equations (29) and (30) equal to each other results in the following after simplification:
~ eN = ~Tl ~2e ~ e - 3e ] ~31) s PK N-l Ns The ~uantity e is the velocity of the axis if the manipulator Ns were tracXing th,e point N at the start o~ the overall move at the ;
projected time that the manipulator is finishing the weld at point N-l. As seen by the sloped dotted line between eN and e (exag-gerated), the velocity e is not constant and inclu'des a slight ' acceleration or deceleration component, ~g27~
Considering the peaX velocity 9 , ~he following relation-ships define the quantity e , case I results when /e - e / = /~ -PX PK N-l PK
e / and case II results when Ns /e - e /~/e - e /:
PK Ns PK N-l S Case I, e = e I a ~ Tl (32) . N-1 MAX
Case II, e _ e ~ a . T (33) II l CaceiI is illustrated in FIG. 12a. Considering the Case II situation and su~stituting equation ~33) into equation (31):
T ~ T [1 (e ~ eN =
1 1 2 aMAX N-l a MAX ~
Thus the guadratic equation (34) may be solved for T if the value of ~ is ~nown since the quantities a , a and ~ e are Ns . MAX N-l Ns already ~nown. The velocity e is calculated by numerical - Ns . F
differentiation techniques, i~e. the velocity ~ is calculated at two points a smaLl distance on either side of the projected conveyor location corresponding to the point e and the slope is determined . N-l to yield e . The solutions of the term T for all the manipulator Ns axes are then examined to determine t~e g~atest T and thus the critical axis, i.e. the axis that determines the minimum execution `
time required for the movement from point N-l to point N. This axis is the one that will move the fastest and acce~erate. at the maximum rate.
After determining the time of the overall move as 2T , the simplified axis predict method proceeds as discussed herein-before in connection with the simplified Cartesian predict method.
The solution for T in the Case I situation is obtained by substituting equation (32) into equation (31):
T t T [3 (eN 1 ~ ~ Ns)] ~ s MAX ' 11~9:~79 .
I .`.
In the equation (34) and (35), the following relationships define whether the value ~a or -a is utilized: ~$
MAX MAX
use I a , if e ~ e , Case I (36) _~.
MAX PK N-l ~:
if e `e , Case II ~
~K Ns .~.
use -a , if e ~ e , Case I (37) M~Y. PK N-l ~.
if ~ ~ e , Case II ~-PK Ns Refe~ring now to the long move analysis for the simplified axis predicz method and referring now to FIG. 12~, the following .
relationship is utilized:
e = e (2T t T ) (38) dyn Ns 1 M ~
~ubstituting equation (38) into the basic relationship (28) yields: 1:
~\ e - ~ e + e (2T t T ) (39) TOTAL . Ns.. . ~s l M
The quantity ~ e is again defined in terms of the areas ; TOTAL
under the velocity profile of ~G, 12b: ~:
(40) ~ 2(~ ~ e ) Tl ~ e . T ~ ~2(e t e -~ TOTAL = MAX N-l MAX M MAX Ns ~' where the velocity e is utilized in the long move analysis in . .
~ lieu of the velocity e since the manipulator reaches e .
;PK MAX
Setting the equation (39) and (40) equal yields the ~
following upon simplification: ~.
~
e = T (e - . 3 e ~ ~2e ) ~ T (e - e ) (41) ~s 1 ~X 2 ~s ~ AX ~g -~
9~79 The solution of T is organized into the following for Case 1 and Case II:
Case I, T - e - e (42) MAX
- MAX ..
.
Case II, T = e - e _ (43) MAX Ns MAX
The quantity ~ is solved from the following relationship obtained M .
by rea~-2nging equation (41):
T - T ~3/2 ~ - ~e - ~ ] I ~ ~ ~44) M 1 Ns N-l MAX Ns e . - e e - e ~:
MAX Ns MAX Ns ,, , Equation (44) is then solved for.T to obtain the total movement M
~ time T for each axis by adding the quantity 2T to T = T . As : s 1 M s before, the greatest value of T amonq the manipulator axes defines s the minimum execution time T .
s The details of the above long and short move analyses for the simplified joint predict method are illustrated in flow diagram . . .
form in FIGS. 13 and 14.
. ~ :
Considering now the modified axi~ predict method, the ~ : calculations and the basic approach is sim lar to the simplified :~ 20 . joint predict method except that the quantities T and T are not .
~; ~ set equal. The following relationships define the approach to calculating T and T for the short move analysis:
1~ . T - X . T ~ K ~45) : 2 1 1 2 ., '.
K = [a - e ] (46) a t b') MAX 1~ . . .
~lJ.1~279 K = 16 - e ) (~ (47 2 N-l ~s a t ~
aTl + bTl + c = O (48j . .
Where: .., .. - 2 (a) = [~e + e K ~ ~e ~ - ~a - a K -~ ~ K ]. (49) N N 1 N 1 MAX ~ MAX
-- . .
(b) = [e t e Kl + e K + e K K - e Ns Ns ~ 2 N 1 2 (N-l) F (N-l)F
+ a X K - a ~2] (50) ' 2 2 (c) - [~ e t e K t ~e x2 e K2 ~ ~a K ] (51) S Ns 2 N (N-l)F MAX 2 ; For the long move analysis, the following relationships are utilized:
I' - [e - e 1 MAX (N-l)P _ . (S2) MAX
... -- ~ .. ..
T -- [e - e ~ e ) - e T
2 MAX Ns ~ MAX (N-l)F N M ~53) .. . M~X
a ~e MAX N
....... . . . .. -Where: .
2 Kl TM ~ ~2 (5~) , . .
, ~ K = I-e ] (55) .~ . 1 N
: a t e MAX N
- . ..
K - [e - e(e e ) + (e ~ e )] - (s6) 2 MAX Ns N MAX N (N-l?F
a a ~,L~r MAX
, .
a ~ e MPX N
T = (T ~ K2) (57) (lX2) . ( T - T (1 ~ K ) (58) ~lKl) ~ 1 (a) T t (b) T t c ~ 0 (54) (MlKl) (MlXl) (a) ~ 1~ ~ a X 1 (60) N MAX
2~1~Kl)2 '~
(b) ~ [e ~ e T - e + aX K ] (61) ~s N (lK2) MAX ~X 1 2 (l~Kl) (1 1~ , ) - i'\ e ~ ~ T ~ ~e T- - ~e ~ T (62) S ~s (lK2) N (lK2) (N-l)F 1 0 -~e T - e K ~ ~a ~ 2 ]
MAX 1 MAX 2 ~ ~
The time of the overall move T = ~1 ~ T2 t TM may then be solved for each axis to determine the axis requiring the greatest executio time. The quantity T is calculated and then T is found from (MlKi) M
equation (58). The quantity T is then calculated from eauation (5~).
In accordance with other important aspects of the present inventlon, the teach-assist computer 34 is arranged to selecti~ely calculate and project a predetermined twist sequence for the welding gun carried by the manipulator arm 11. ~he twist sequence -in playback operation changes the orientation of the welding gun ; during the weld to reduc,e,,the prob,a,bility of,,,a ,w,eld gun stick wherein the welding gun tips stick or remain attached to the work-piece 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.
Z7~
( The twist sequence in one specific embodiment programs 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 steps before and after each weld step. A pre-determined desired twist angle is determined in accordance with.
we.~ing parameterS and practi.ce. For exam?le and referring ~o ~ . 8, a twist or change in orien.ation TW tin degrees) of the welding gun hand se5~ent h4 (defined by points S and T) by suitable movément of the point R and wi.h the h4 segment remaininy 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 .6econd welding step, I~l equal to 4 change in orientation or twist 15 of the h4 segment defined by the-points-.S and ~ 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. 1.
This is accom~lished 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 betwe.en 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 FIG. 13A, the teach assist computer-performs a modification _59_ .
of the /T / transform data to add a ~TW/2 factor. To accomplish N ST
this, a decision block is provided in the program flow after the CONVERT ~LOCK adjacent the reference marker C. The decision block interrogates the input data from the terminal 36 and the teach S controls to decide IS THIS CP WELD? and IS Th'IST FV~CTION ON?
If the determination is NO, the program flow proceeds to the TRA~SL~TE bloc~. If the determination is YES, the program flow r-cceeds from the decision block to a CALCULATr block to modify the /T / transform data by adding the twist orientation factor ~ ST ~TW/2 10 tl~'~2 to obtain the modified transform data /T / . Thus, tTW/2 N ST
in effect the data /TN/ST has been substituted for /T /
N ST
The remaining program flow in FIG. 13A through the reference marker F then proceeds to operate on the modified data in the identical manner as discussed hereinbefore but with the ; 15 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 disc~ssed hereinbe~ore corresponds to the start of the weld step N.
Similarly and referring now to the blocks after the - reference marker F, after the CP ~LD? decision block, another decision blocX is provided intermediate the CP WELD? decision bloc~ and the GET T~ AND GENERATE /T / block. The added - N CV~2Tl~TW
decision block performs the determination IS TWIST FUNCTION ON?
If the determination is NO, the program flow proceeds to the adjacent GET TW and GEN~RATE /T / block. If the determination is N CV~2TltTW
YES, the program flow proceeds to the C~LCULATE block to modify the /T / transform data to /T / . The program flow then N ST N ST
7'3 f ~.
proceeds to the GET TW and GENERATE /T / block, ~owever, now the transform data /T / T / is utilize~ to obtain the data _TW/2 N ST
/T / in the next block and succeeding portions of ~ CVt2Tl~TW
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 r~n is controlled to twist through an orientation from ~TW/2 to ~ atween 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.
5n accordance with further important aspects of the present invention, a track alarm sequence is calculated during the teaching mode and'storea-in the memory 16 for-each weld step that is taught. : -In playback, the trackalarm 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 ':he track alarm sequence data corresponding to the weld step at which the weld stick is detected, Imme~iately 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 e~ternal 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 tracX alarm sequence data rather than the normal worX operation (` 1~ 7~ ( 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 em~odiment, 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 or each weld or-144 steps and various other manipulator control steps is pr-ovided by this arrangement.
For example, a typical work operatlon 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 2S6-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 worX program operations including a predetermined sequence of welds, the teach-assist computer 34 assigns the address location of the four track alarm steps for recording into memory 16 as discussed hereinbefore~ The
: . 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.
~lL19279 Thus, the simplified Cartesian predict or precomputation method descri~ed 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 prov~des accurate data for a spot welding program and has been found s~-~is~actory for most work cycle applications of this type, it shoùld be realized-that other predict methods utilizing ~ifferent calculation programs to define the dynamic profiles including welding steps, acceleration steps, constant velocity steps and deceleration steps are also possible where more precice program optimization is desired.
In this regard it should be~-real-ized~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 execu-tion 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.
1~19;279 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 a~is 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 FIG. 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 FIGS. 13 and 14 respectively. A diagrammatic representation of the computation points in any of the manipulator axes is illustrated in FIG. 12.
The following definitions and relationship are useful in considering the operations described in the flow charts FIGS.
13 and 14 and the diagra~matic representation of FIG. 12.
( 1~1927~ (-N represents the current point for which the precomputations (22) of the fixed path solution are being performed, i.e. the move fxom N - 1 to N; - !
N-l represents the previous point for which the pre-computations have been performed to move to the point N-l; (23) /E ~ 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 con-veyor register i:e. CV is equivalent to the sy~bol ~D as discussed hereinbefore; ............................................ . .
~T /CV represents the Cartesian transform of the data . (25) /E / at the point N with vector definition of the manipulator hand of the manipulator e-.g~ the Cartesian coordinates of the point S in:FIG. 8 and ~he direction cosines in each coordinate axis for the vector segments RS and ST;
/E / represents the set of manipulator axis data in : ~ CV ~26) 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;
E , E , E , E represents the corresponding ~IDI MID1 MID2 MID2 (27 positions and velocities at the end points of the middle constant velocity step for advance to the Point ~ as illustrated in FIG. 12 .
: Considering now the basic calculations and operations ¦ 25 performed for the simplifiea axis predict method illustrated in FIGS. 13 and 14, reference is made to FIGS. 12a and 12b. In FIG.
12a, the short move analysis is diagrammatically represented and in FIG. 12b the long move analysis is diagrammatically represented..
In the case of the short move analysis, FIG~ 12a, the following relationship describes the basis.for calculating the _52-;Z7!~ ~ ( execution time for each manipulator axis:
~ s ~ dyn ~ TOTAL (28) where ~ e = eN . 2T and ~ eN = eN - e . Thus, the dyn 5 1 s N-l total positional change ~ e for each manipulator axes for TOTAL
the total move from point N-l to point N is calc~lated by summing :the portion A ed representing the trackinq of the point N as tl~e con~eyor moves with projected mo~ion during the time of the move, T l ~ = 2Tl (,assume T = T2) and the portion ~ eN representing the movement of the manipulator between the points N-l and N with the conveyor stopped at the position corresponding to 0 ; i.e.
N-l e represents the s.atic positional change. The quantity ~ e Ng of equation (28) may be rewritten as follows:
- s s 1 (29) The quantity ~ e is also defined from FIG. 12a by calculating the trapezoidal areas denoted ~ and ~ :
.- ; ~ . . :
~e=~(e f e ) T ~ ~(e ~ e )l~ (30) ~ ~(~
Setting equations (29) and (30) equal to each other results in the following after simplification:
~ eN = ~Tl ~2e ~ e - 3e ] ~31) s PK N-l Ns The ~uantity e is the velocity of the axis if the manipulator Ns were tracXing th,e point N at the start o~ the overall move at the ;
projected time that the manipulator is finishing the weld at point N-l. As seen by the sloped dotted line between eN and e (exag-gerated), the velocity e is not constant and inclu'des a slight ' acceleration or deceleration component, ~g27~
Considering the peaX velocity 9 , ~he following relation-ships define the quantity e , case I results when /e - e / = /~ -PX PK N-l PK
e / and case II results when Ns /e - e /~/e - e /:
PK Ns PK N-l S Case I, e = e I a ~ Tl (32) . N-1 MAX
Case II, e _ e ~ a . T (33) II l CaceiI is illustrated in FIG. 12a. Considering the Case II situation and su~stituting equation ~33) into equation (31):
T ~ T [1 (e ~ eN =
1 1 2 aMAX N-l a MAX ~
Thus the guadratic equation (34) may be solved for T if the value of ~ is ~nown since the quantities a , a and ~ e are Ns . MAX N-l Ns already ~nown. The velocity e is calculated by numerical - Ns . F
differentiation techniques, i~e. the velocity ~ is calculated at two points a smaLl distance on either side of the projected conveyor location corresponding to the point e and the slope is determined . N-l to yield e . The solutions of the term T for all the manipulator Ns axes are then examined to determine t~e g~atest T and thus the critical axis, i.e. the axis that determines the minimum execution `
time required for the movement from point N-l to point N. This axis is the one that will move the fastest and acce~erate. at the maximum rate.
After determining the time of the overall move as 2T , the simplified axis predict method proceeds as discussed herein-before in connection with the simplified Cartesian predict method.
The solution for T in the Case I situation is obtained by substituting equation (32) into equation (31):
T t T [3 (eN 1 ~ ~ Ns)] ~ s MAX ' 11~9:~79 .
I .`.
In the equation (34) and (35), the following relationships define whether the value ~a or -a is utilized: ~$
MAX MAX
use I a , if e ~ e , Case I (36) _~.
MAX PK N-l ~:
if e `e , Case II ~
~K Ns .~.
use -a , if e ~ e , Case I (37) M~Y. PK N-l ~.
if ~ ~ e , Case II ~-PK Ns Refe~ring now to the long move analysis for the simplified axis predicz method and referring now to FIG. 12~, the following .
relationship is utilized:
e = e (2T t T ) (38) dyn Ns 1 M ~
~ubstituting equation (38) into the basic relationship (28) yields: 1:
~\ e - ~ e + e (2T t T ) (39) TOTAL . Ns.. . ~s l M
The quantity ~ e is again defined in terms of the areas ; TOTAL
under the velocity profile of ~G, 12b: ~:
(40) ~ 2(~ ~ e ) Tl ~ e . T ~ ~2(e t e -~ TOTAL = MAX N-l MAX M MAX Ns ~' where the velocity e is utilized in the long move analysis in . .
~ lieu of the velocity e since the manipulator reaches e .
;PK MAX
Setting the equation (39) and (40) equal yields the ~
following upon simplification: ~.
~
e = T (e - . 3 e ~ ~2e ) ~ T (e - e ) (41) ~s 1 ~X 2 ~s ~ AX ~g -~
9~79 The solution of T is organized into the following for Case 1 and Case II:
Case I, T - e - e (42) MAX
- MAX ..
.
Case II, T = e - e _ (43) MAX Ns MAX
The quantity ~ is solved from the following relationship obtained M .
by rea~-2nging equation (41):
T - T ~3/2 ~ - ~e - ~ ] I ~ ~ ~44) M 1 Ns N-l MAX Ns e . - e e - e ~:
MAX Ns MAX Ns ,, , Equation (44) is then solved for.T to obtain the total movement M
~ time T for each axis by adding the quantity 2T to T = T . As : s 1 M s before, the greatest value of T amonq the manipulator axes defines s the minimum execution time T .
s The details of the above long and short move analyses for the simplified joint predict method are illustrated in flow diagram . . .
form in FIGS. 13 and 14.
. ~ :
Considering now the modified axi~ predict method, the ~ : calculations and the basic approach is sim lar to the simplified :~ 20 . joint predict method except that the quantities T and T are not .
~; ~ set equal. The following relationships define the approach to calculating T and T for the short move analysis:
1~ . T - X . T ~ K ~45) : 2 1 1 2 ., '.
K = [a - e ] (46) a t b') MAX 1~ . . .
~lJ.1~279 K = 16 - e ) (~ (47 2 N-l ~s a t ~
aTl + bTl + c = O (48j . .
Where: .., .. - 2 (a) = [~e + e K ~ ~e ~ - ~a - a K -~ ~ K ]. (49) N N 1 N 1 MAX ~ MAX
-- . .
(b) = [e t e Kl + e K + e K K - e Ns Ns ~ 2 N 1 2 (N-l) F (N-l)F
+ a X K - a ~2] (50) ' 2 2 (c) - [~ e t e K t ~e x2 e K2 ~ ~a K ] (51) S Ns 2 N (N-l)F MAX 2 ; For the long move analysis, the following relationships are utilized:
I' - [e - e 1 MAX (N-l)P _ . (S2) MAX
... -- ~ .. ..
T -- [e - e ~ e ) - e T
2 MAX Ns ~ MAX (N-l)F N M ~53) .. . M~X
a ~e MAX N
....... . . . .. -Where: .
2 Kl TM ~ ~2 (5~) , . .
, ~ K = I-e ] (55) .~ . 1 N
: a t e MAX N
- . ..
K - [e - e(e e ) + (e ~ e )] - (s6) 2 MAX Ns N MAX N (N-l?F
a a ~,L~r MAX
, .
a ~ e MPX N
T = (T ~ K2) (57) (lX2) . ( T - T (1 ~ K ) (58) ~lKl) ~ 1 (a) T t (b) T t c ~ 0 (54) (MlKl) (MlXl) (a) ~ 1~ ~ a X 1 (60) N MAX
2~1~Kl)2 '~
(b) ~ [e ~ e T - e + aX K ] (61) ~s N (lK2) MAX ~X 1 2 (l~Kl) (1 1~ , ) - i'\ e ~ ~ T ~ ~e T- - ~e ~ T (62) S ~s (lK2) N (lK2) (N-l)F 1 0 -~e T - e K ~ ~a ~ 2 ]
MAX 1 MAX 2 ~ ~
The time of the overall move T = ~1 ~ T2 t TM may then be solved for each axis to determine the axis requiring the greatest executio time. The quantity T is calculated and then T is found from (MlKi) M
equation (58). The quantity T is then calculated from eauation (5~).
In accordance with other important aspects of the present inventlon, the teach-assist computer 34 is arranged to selecti~ely calculate and project a predetermined twist sequence for the welding gun carried by the manipulator arm 11. ~he twist sequence -in playback operation changes the orientation of the welding gun ; during the weld to reduc,e,,the prob,a,bility of,,,a ,w,eld gun stick wherein the welding gun tips stick or remain attached to the work-piece 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.
Z7~
( The twist sequence in one specific embodiment programs 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 steps before and after each weld step. A pre-determined desired twist angle is determined in accordance with.
we.~ing parameterS and practi.ce. For exam?le and referring ~o ~ . 8, a twist or change in orien.ation TW tin degrees) of the welding gun hand se5~ent h4 (defined by points S and T) by suitable movément of the point R and wi.h the h4 segment remaininy 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 .6econd welding step, I~l equal to 4 change in orientation or twist 15 of the h4 segment defined by the-points-.S and ~ 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. 1.
This is accom~lished 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 betwe.en 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 FIG. 13A, the teach assist computer-performs a modification _59_ .
of the /T / transform data to add a ~TW/2 factor. To accomplish N ST
this, a decision block is provided in the program flow after the CONVERT ~LOCK adjacent the reference marker C. The decision block interrogates the input data from the terminal 36 and the teach S controls to decide IS THIS CP WELD? and IS Th'IST FV~CTION ON?
If the determination is NO, the program flow proceeds to the TRA~SL~TE bloc~. If the determination is YES, the program flow r-cceeds from the decision block to a CALCULATr block to modify the /T / transform data by adding the twist orientation factor ~ ST ~TW/2 10 tl~'~2 to obtain the modified transform data /T / . Thus, tTW/2 N ST
in effect the data /TN/ST has been substituted for /T /
N ST
The remaining program flow in FIG. 13A through the reference marker F then proceeds to operate on the modified data in the identical manner as discussed hereinbefore but with the ; 15 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 disc~ssed hereinbe~ore corresponds to the start of the weld step N.
Similarly and referring now to the blocks after the - reference marker F, after the CP ~LD? decision block, another decision blocX is provided intermediate the CP WELD? decision bloc~ and the GET T~ AND GENERATE /T / block. The added - N CV~2Tl~TW
decision block performs the determination IS TWIST FUNCTION ON?
If the determination is NO, the program flow proceeds to the adjacent GET TW and GEN~RATE /T / block. If the determination is N CV~2TltTW
YES, the program flow proceeds to the C~LCULATE block to modify the /T / transform data to /T / . The program flow then N ST N ST
7'3 f ~.
proceeds to the GET TW and GENERATE /T / block, ~owever, now the transform data /T / T / is utilize~ to obtain the data _TW/2 N ST
/T / in the next block and succeeding portions of ~ CVt2Tl~TW
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 r~n is controlled to twist through an orientation from ~TW/2 to ~ atween 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.
5n accordance with further important aspects of the present invention, a track alarm sequence is calculated during the teaching mode and'storea-in the memory 16 for-each weld step that is taught. : -In playback, the trackalarm 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 ':he track alarm sequence data corresponding to the weld step at which the weld stick is detected, Imme~iately 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 e~ternal 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 tracX alarm sequence data rather than the normal worX operation (` 1~ 7~ ( 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 em~odiment, 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 or each weld or-144 steps and various other manipulator control steps is pr-ovided by this arrangement.
For example, a typical work operatlon 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 2S6-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 worX program operations including a predetermined sequence of welds, the teach-assist computer 34 assigns the address location of the four track alarm steps for recording into memory 16 as discussed hereinbefore~ The
-6~-79 c first trac~ alarm step of each four step track alarm sequence:
is calculated as a PTPC step. This is accomplishe~ 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 worXpiece position zre translated in accordance with the projected workpiece displacement during a time interval equal to the sum of t:.- time ts, the weld stick detect time in playback, plus a pre-determined lead time ~\ t. Thus in playbacX, 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 inter~al ~ t; providing an advance tracking position. -The-second, third and fourthtracX 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 projected worXpiece movement.
The steps are calculated utilizing 256 interpolation intervals and a X factor of ~ to provide the largest possible tracking time (512 conveyor LSD step le~gth) before the conveyor i9 shut down.
This four step tracX alarm sequence provides approximately 5 seconds of tracking time at a projected wor~piece 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 r ~ 9Z79 at a predetermined control bit location ~ne of the Cl-C10 bits in the Group Data Pormat Table 1) 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 teaching mode corresponding to a respective n ~ber of designated program escape steps in the work operation pro-gram. The taught escape paths are recorded into the control memory 16 and utilized in playback to withdraw the manipulator arm ~rom the workpiece area upon the actuation of an escape control after the program step is reached corresponding to the next designated es-cape step. A withdrawal or escape of the manipulator arm may be required in the discretion o an operator in the case of a work-~piece conveyor malfunction or misalignment, obstruction in the work-piece area or undesirable behavior of the manipulator arm.
For example, in a specific embodlment eight escape paths are taught at eiqht 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 ranqe of address locations.
T~pically, 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 s_quence corresponding to the designated escape step in the work operation program. The remaining seven escape path steps are then sequentially read out er the control of the manipulator control apparatus. The de~di1S OL the escape path operation in playbacX will be described in de~ail hereinafter.
~uring 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 bit E/F-when the 15; data is read-out in playback (bit position 15 of the Group 8 data in TABLE I). The teach operator at the designated es-cape. step of the work operation program then proceeds to teach a series of escape path step~s,~ eight if required, to teach a with-drawal of the manipulator arm from the projected position relati~e to the workpiece currently beinq taught in the worX operation program.
. ' ~
As discussed hereinbefore, 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 reouired. In a specific e~bodiment, the first escape path step is taught and programmed as a PTPC step and the remaining escape ~ath 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 re ..r-ing to ~IG. 15, the encoder apparatus for each of the cbntrol 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 referre~
to;generally at 502 as discussed in more detail in application Seri_ Nos.-721,805 and 625,932.
The encoder output data 502 is connec.ed 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 ~o m~ltiplex group scan sigDal~ Gl through G8 by dscoding a basic _ ... . _ .... _ _ ,, , C
system clock signal. The signals GC0-2 are also generated by the address and scan control stage and represent the group multiplex scan intervals as a 3 bit coded sisnal. Each of the multiplex group scan interval signals Gn, n = 1 through 8, is active during a respective sequential scan interval in each Oc the repetitive group scan cycles. Reference may be made to the aforementioned application Se~-i21 Nos. 721,805 and 625,932 for a discussion of the group ultiplex scan signals and the general operation ofmanipulator control apparatus of this general type.
The entlre on-line control apparatus 14 is synchronized to the basic system clock and the group multiplex scan signals Gl through G8. ~eferring now to FIG. 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 W~0. The signal W~0 is 32 times the=frequency of the basic system clock. 'The signal W~ and the multiplex'group scan signals Gn are utilized to generate the synchronous timing signals for the overall manipulator control circuitry as will be dis-' cussed in more detail hereinafter.
Th'e scanner/register/converter stage 504 produces a multiplexed data output E 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 dusing the off-line teaching mode is outputted on a data bus referred to generally at ZE . The data bus ZE is connected to a second input of the data select stage 506. The data select stage 506 (~
outputs either the E data or the ZE data determined by a data n n select input ~TT and a Request Encoder Data timing signal RBFE
onto a main system data bus referred to generally at ED . 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 ED bus, the ZTT data select signal is active to select the ZE data input.
'i~ne ZE data is generated by the off-line apparatus 30 and arranged in the s~me multiplex format as the E and the ED 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 W~ 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 AC . The address data bus signal is generated by the address and scan control stage 508. The read and write modes of ~e memory 16 are controlled by a Memory Interrogate Timing signal WCB and a mode signal WMC generated by the timing control stage 5~.The WCB timing signal (FIG. 17) is active during the second program time interval to read data out of the memory 16 onto a data bus D , The WCB timing signal also is active during the tenth program time interval to write data into memory from the E~ data bus with the presence of the ~IC mode signal during the off-line teaching mode.
The D 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 ~emory Data timing signal RBFD generated by the timing control stage during the second and third program time intervals. Thus, the da~a read out of the memory 16 onto the data bus D during the second and third program time intervals is also .transferred thru the buffer to the data S select stage 510, snd outputted to the ED data bus during the second and third program time intervals.
Considering now the data format of the various data b..:es and the memory 16, T~BLE I illustrates one particular data form'::
~9;;~7~ ( _ , ~ _ _ _ ~ _ l I
_ _ _ _ I ~
C ~Z ~ S IO S O ~ C
,~t, o _ ~ _ _ ~
~ ., ., " ~ ~3 ~3 ,~ , ~ ~ ~ ~n I_ ~ X ~ ~n _ . _ ., ., ., ., W ~3 ~3 ~ , ~ J I_ C:l C~ I_ ~ X X ~p . t~ O _ ~p ~0 W l_ (-~ _ t~` t~ t~ I W tl:l ~_~ 1~_ ~_ I_ ~_ ~,_ 1- I W I_ 1._ (~
_ _ __ _ , ~ ~ PJ ~ ~ ~, _ _ _ ~ 1~3 ~ ~ ~y ~ ~ ~ l_ _ __ _ t'3 ,' ~ W ~ W ~ W ~ $ 1_ _ _. _ O O O O . O . O . o _ . H
t'3 W t'~ W-- ~ .. t~ - _ ~ ~ - - ~ .. . .
_ . _ .. -' _ ....
t~ W ~ ~ t~ t~ W t~ tl:~ , a~ :~ ,c:l CD CD ~ CO (W) _ __ _ ~ W ~ ~ ~ ~ W
~I ~I ~I ~ ~I ~I
. _ _ _ _ W ~ ~ ~ ~ ~ ~ 0 ~ C~ ~ O~ ~ ~ '~
_ _ , _ ~g ~ t'3 ~ ~ ~ X U~
~n ~n Ul U~ V~ ~ ~n I_ _ _ .
~ ~ ~ ~ ~. ~.. $.. ~ ~ .
_ _ _ W W ~ W
~ W W W W ~ ~ W
_ _ . __ .
P~ ~ ~ W ~ W W Z: .~, __ Z: , , , , , , , ~ , . "~ ~ W ~- Z ~ ~ 3 1 ~ ~ ~ a ~ o l (S . I
O O W I
~ ~ )~ I~ ~ I~ oo~
~~ )~ ~~ O ~ ol-O~n _70_ 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 E~n,Dn, E and each of the encoder outputs at 502 is arranged in a binary 5 data format on fifteen data lines. The group column identifying the eight numbered rows refers to the multiplex scan interval sequence. Thus, during the first group multiplex scan interval Gl, the row of data labeled CONTROL
:s presented on the fifteen line Dn data bus from the memory i6. Similarly the second through eighth rows are present on the data buses during the multiplex group scan intervals G2 through G8.
The encoders for the respective manipulator control axes in the third throush eighth rows output the indicated positional representation data for the respective axes at S02. 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 Gl scan inter~al includes two mode bits Ml 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 hereinbe~ore. The 1, 2 and 3 bit positions of the Control Group 1 include the coded bi.ts Nl, N2 and N3. The bits Nl, . N2 and N3 represent the number of interpolation intervals assigned to the particular step. The 14 and 15 bit positions during the Gl, G2 and G3 scan intervals include the TKl-TX6 ! . coded data bits to define the velocity constant Y~v. The coded interpolation interval bit N3 is also utilized when a CP mode is decoded from the Ml and M2 bits to determine whether the step is a CP(A,C-~=0) or a CP(ACC~0) step. A-"one" in the ~3 bit position during a decoded CP step denotes an acceleration step CP(ACC~0) if the Nl and N2 .
~its 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 ~ jram step.
The on-line control apparatus 14 includes an arithmetic computer and processor stase 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 e~bodiment,~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 qenerally 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 Ta~le II and the details of the arithmetic computer and processor unit 514 of FIG. 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 Wl 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 ~ables V and VI.
,9~9 The processor program memory stage 516 includes five address signals Wl through W5. The Wl through W5 address signals are controlled by the timing control signals Wl through W5 respectively (Figure 17). The Wl through W5 timing signals are generated by the timing control stage 512.
The Wl 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 Wl 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-
is calculated as a PTPC step. This is accomplishe~ 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 worXpiece position zre translated in accordance with the projected workpiece displacement during a time interval equal to the sum of t:.- time ts, the weld stick detect time in playback, plus a pre-determined lead time ~\ t. Thus in playbacX, 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 inter~al ~ t; providing an advance tracking position. -The-second, third and fourthtracX 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 projected worXpiece movement.
The steps are calculated utilizing 256 interpolation intervals and a X factor of ~ to provide the largest possible tracking time (512 conveyor LSD step le~gth) before the conveyor i9 shut down.
This four step tracX alarm sequence provides approximately 5 seconds of tracking time at a projected wor~piece 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 r ~ 9Z79 at a predetermined control bit location ~ne of the Cl-C10 bits in the Group Data Pormat Table 1) 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 teaching mode corresponding to a respective n ~ber of designated program escape steps in the work operation pro-gram. The taught escape paths are recorded into the control memory 16 and utilized in playback to withdraw the manipulator arm ~rom the workpiece area upon the actuation of an escape control after the program step is reached corresponding to the next designated es-cape step. A withdrawal or escape of the manipulator arm may be required in the discretion o an operator in the case of a work-~piece conveyor malfunction or misalignment, obstruction in the work-piece area or undesirable behavior of the manipulator arm.
For example, in a specific embodlment eight escape paths are taught at eiqht 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 ranqe of address locations.
T~pically, 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 s_quence corresponding to the designated escape step in the work operation program. The remaining seven escape path steps are then sequentially read out er the control of the manipulator control apparatus. The de~di1S OL the escape path operation in playbacX will be described in de~ail hereinafter.
~uring 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 bit E/F-when the 15; data is read-out in playback (bit position 15 of the Group 8 data in TABLE I). The teach operator at the designated es-cape. step of the work operation program then proceeds to teach a series of escape path step~s,~ eight if required, to teach a with-drawal of the manipulator arm from the projected position relati~e to the workpiece currently beinq taught in the worX operation program.
. ' ~
As discussed hereinbefore, 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 reouired. In a specific e~bodiment, the first escape path step is taught and programmed as a PTPC step and the remaining escape ~ath 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 re ..r-ing to ~IG. 15, the encoder apparatus for each of the cbntrol 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 referre~
to;generally at 502 as discussed in more detail in application Seri_ Nos.-721,805 and 625,932.
The encoder output data 502 is connec.ed 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 ~o m~ltiplex group scan sigDal~ Gl through G8 by dscoding a basic _ ... . _ .... _ _ ,, , C
system clock signal. The signals GC0-2 are also generated by the address and scan control stage and represent the group multiplex scan intervals as a 3 bit coded sisnal. Each of the multiplex group scan interval signals Gn, n = 1 through 8, is active during a respective sequential scan interval in each Oc the repetitive group scan cycles. Reference may be made to the aforementioned application Se~-i21 Nos. 721,805 and 625,932 for a discussion of the group ultiplex scan signals and the general operation ofmanipulator control apparatus of this general type.
The entlre on-line control apparatus 14 is synchronized to the basic system clock and the group multiplex scan signals Gl through G8. ~eferring now to FIG. 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 W~0. The signal W~0 is 32 times the=frequency of the basic system clock. 'The signal W~ and the multiplex'group scan signals Gn are utilized to generate the synchronous timing signals for the overall manipulator control circuitry as will be dis-' cussed in more detail hereinafter.
Th'e scanner/register/converter stage 504 produces a multiplexed data output E 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 dusing the off-line teaching mode is outputted on a data bus referred to generally at ZE . The data bus ZE is connected to a second input of the data select stage 506. The data select stage 506 (~
outputs either the E data or the ZE data determined by a data n n select input ~TT and a Request Encoder Data timing signal RBFE
onto a main system data bus referred to generally at ED . 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 ED bus, the ZTT data select signal is active to select the ZE data input.
'i~ne ZE data is generated by the off-line apparatus 30 and arranged in the s~me multiplex format as the E and the ED 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 W~ 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 AC . The address data bus signal is generated by the address and scan control stage 508. The read and write modes of ~e memory 16 are controlled by a Memory Interrogate Timing signal WCB and a mode signal WMC generated by the timing control stage 5~.The WCB timing signal (FIG. 17) is active during the second program time interval to read data out of the memory 16 onto a data bus D , The WCB timing signal also is active during the tenth program time interval to write data into memory from the E~ data bus with the presence of the ~IC mode signal during the off-line teaching mode.
The D 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 ~emory Data timing signal RBFD generated by the timing control stage during the second and third program time intervals. Thus, the da~a read out of the memory 16 onto the data bus D during the second and third program time intervals is also .transferred thru the buffer to the data S select stage 510, snd outputted to the ED data bus during the second and third program time intervals.
Considering now the data format of the various data b..:es and the memory 16, T~BLE I illustrates one particular data form'::
~9;;~7~ ( _ , ~ _ _ _ ~ _ l I
_ _ _ _ I ~
C ~Z ~ S IO S O ~ C
,~t, o _ ~ _ _ ~
~ ., ., " ~ ~3 ~3 ,~ , ~ ~ ~ ~n I_ ~ X ~ ~n _ . _ ., ., ., ., W ~3 ~3 ~ , ~ J I_ C:l C~ I_ ~ X X ~p . t~ O _ ~p ~0 W l_ (-~ _ t~` t~ t~ I W tl:l ~_~ 1~_ ~_ I_ ~_ ~,_ 1- I W I_ 1._ (~
_ _ __ _ , ~ ~ PJ ~ ~ ~, _ _ _ ~ 1~3 ~ ~ ~y ~ ~ ~ l_ _ __ _ t'3 ,' ~ W ~ W ~ W ~ $ 1_ _ _. _ O O O O . O . O . o _ . H
t'3 W t'~ W-- ~ .. t~ - _ ~ ~ - - ~ .. . .
_ . _ .. -' _ ....
t~ W ~ ~ t~ t~ W t~ tl:~ , a~ :~ ,c:l CD CD ~ CO (W) _ __ _ ~ W ~ ~ ~ ~ W
~I ~I ~I ~ ~I ~I
. _ _ _ _ W ~ ~ ~ ~ ~ ~ 0 ~ C~ ~ O~ ~ ~ '~
_ _ , _ ~g ~ t'3 ~ ~ ~ X U~
~n ~n Ul U~ V~ ~ ~n I_ _ _ .
~ ~ ~ ~ ~. ~.. $.. ~ ~ .
_ _ _ W W ~ W
~ W W W W ~ ~ W
_ _ . __ .
P~ ~ ~ W ~ W W Z: .~, __ Z: , , , , , , , ~ , . "~ ~ W ~- Z ~ ~ 3 1 ~ ~ ~ a ~ o l (S . I
O O W I
~ ~ )~ I~ ~ I~ oo~
~~ )~ ~~ O ~ ol-O~n _70_ 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 E~n,Dn, E and each of the encoder outputs at 502 is arranged in a binary 5 data format on fifteen data lines. The group column identifying the eight numbered rows refers to the multiplex scan interval sequence. Thus, during the first group multiplex scan interval Gl, the row of data labeled CONTROL
:s presented on the fifteen line Dn data bus from the memory i6. Similarly the second through eighth rows are present on the data buses during the multiplex group scan intervals G2 through G8.
The encoders for the respective manipulator control axes in the third throush eighth rows output the indicated positional representation data for the respective axes at S02. 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 Gl scan inter~al includes two mode bits Ml 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 hereinbe~ore. The 1, 2 and 3 bit positions of the Control Group 1 include the coded bi.ts Nl, N2 and N3. The bits Nl, . N2 and N3 represent the number of interpolation intervals assigned to the particular step. The 14 and 15 bit positions during the Gl, G2 and G3 scan intervals include the TKl-TX6 ! . coded data bits to define the velocity constant Y~v. The coded interpolation interval bit N3 is also utilized when a CP mode is decoded from the Ml and M2 bits to determine whether the step is a CP(A,C-~=0) or a CP(ACC~0) step. A-"one" in the ~3 bit position during a decoded CP step denotes an acceleration step CP(ACC~0) if the Nl and N2 .
~its 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 ~ jram step.
The on-line control apparatus 14 includes an arithmetic computer and processor stase 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 e~bodiment,~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 qenerally 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 Ta~le II and the details of the arithmetic computer and processor unit 514 of FIG. 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 Wl 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 ~ables V and VI.
,9~9 The processor program memory stage 516 includes five address signals Wl through W5. The Wl through W5 address signals are controlled by the timing control signals Wl through W5 respectively (Figure 17). The Wl through W5 timing signals are generated by the timing control stage 512.
The Wl 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 Wl 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 in-cludes an eight-bit address, three program mode address signals on data bus 522 and five program address signals Wl 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 Wl 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 nu~ber 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 in-cludes 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 Ml and M2 on the EDn bus during the Gl scan time interval. A
5 TEACH signal, an initialization signal, I~ITIL., 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 ~ode bits Ml and M2 to senerate the APS-7 program mode address signals. The follo~ing AP;-7 program mode acdress 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 ES (End of Interpolation Step) 0 ~__ lS CP (ACC=0) 1 0 0 CP (ACCrO) -. " .. . ~ -O - 1 -The ACL signal is decoded by an in.erpolation interval number decoder stage 534. The ACL signal is decoded and generated when the interpolation interval coded bits N3, N2 and Nl are a "lOl" or a "110". As discussed ` hereinbefore, these codes represent a CPtACC~0~ mode, an acceleration step. The interpolation interval number decoder stage 534 also decodes the information in the N3, ; N2 and Nl coded bits during the Gl 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 Nl bits as shown in Table I.
.
~L119279 ( An Nt2) decoder stage 536 is provided to output the three data bits N3, N2 and ~1 at a data bus 538 when a D2, divide by 2, input control sisnal is a low logic state.
~hen the D2 control signal is a high logic level, the N(2) decoder 536 ou~puts the incremented ~3, ~2 and ~1 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 P.rithmetic ~nit 518. The Xv constant is decoded from the TY~i - TK6 data bits during the Gl, G2 and G3 multiplex scan ini~ervals by a Kv velocity constant decoder stage 540. The Kv velocity constant decodes 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 xepresents 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 quantSty m, represents the interpolation interval current-ly being generated in tlie 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 ~rom 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 _75_ ~
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 ~us 520.
The interpolation counter 55g in a specific embodiment is a divide by 256 counter with 9 binary state outputs determining the nu~ber 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, 12~ and 256 outputs of the int~rrolation interval number deco~er 53~ are connected to a second ~ata input of the end of step detector stage 556. The er.r_ of step detector 556 includes a logic qate array as ~escribed 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 pre-determined period of time after the end of step detector 556 detects an equality and generates an ES signal.
The interpolation counter 554 is ad~ranced in count by a signal CVTC representing a conveyor coincidence signal. The conveyor coincidence signal CVTC is generated by a conve~or synchronization control stage 560. The conveyor synchroniiation 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 o~ put signal from the aritmetic unit 518 in the CP
mode on the ED bus (or as read out of the memory 16 in a PTP
11:19279 or PTPC mode) ~ith the conveyor encoder data generated by the conveyor encoder 32 in the G2 conveyor scan interval. When coin-cidence is detected by the comparator and D/A converter stage 564, the P and M signal lines are both a low logic state enabling the conveyor synchronization control stage 560 to generate a CVTC conveyor coincide~ce signal to the interpolation cou~ er 554. The CVTC
signal advances the output 552 of the interpolation counteri554 b,~ one binary state. Thus the . quantity m is advanced by one ' .,; nary nu~ber. The conveyor synchronization control stage 560 is ena~!ed during the S2 time interval (FIG. 17) at 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 ~_ 15 timing intervals and latched during the eleventh program timing interval by an ECLK timing signal generated by the timing control stage''S12. The position comman'd signals generated by the arith-'metic/processor unit 51~ 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 co~nand signals and the encoder signals during a co~mand sa~nple interval during the 24 through 32 program time intervàls 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 EE~ of the D/A converter 564 represents the analog result of the digital data comparison performed during each scan interval Gn. The multiplexed analog 7~9 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 CO~I and the VEL-4 COM signals are generated by a velocity/acceleration command stage 582. There are six such velocity/accelerstion 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 ~nd processor unit 514.
The EDn data bus during the 12th program timing interval of each Gn scan interval (G4 for rotary) represents the acceleration command signal in digital form generated by the arithmetic unit 518. The ED 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.
j - 78 -~9'~79 ~ ( The buffered output of the acceLeration register 584 is connected to a multiplying D/A converter 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 530 that scales a conveyor tachometer input signal CVTK The CVT~ signal is generated by a conveyor t_chometer included in a sensor/transducer stage referred to genera~ly at 592. The CVTK siqnal is scaled by a factor to reprssent correct acceleration units,for example performlng an x square function.
Similarly, the velocity register 586 is connected to a D/A convsrter 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 sisnal. Thus, the D/A converters 588 and 594 include respective, ~edicated sample and hold stages for each of the six controlled axes and output a respective analog representation ACC COM and VEL CO~S of the digital command signals on the EDn bus in accordance with the present conveyor speed. A timing stage 596 is connected to the Sn timing signals to produce a delayed Sn" timing signal for use by the rotary servo loop eontrol stags 580 and other axas to insure the output of an unambiquous, stable ACC COM signal and a VE~ COM signal before the EE~, ACC COM and VEL COM signals are combined by the rotary servo loop control stage 580 and the other qtages.
The rotary servo loop control stage 580, includes a loop combiner 606 having the VEL COM signal as one input. A second input 608 to the loop co~ibiner 606 is generated at the output of a constant and differentiator stage 610. The input of the stage S 610 is connected to the multiplexed and EER positional error signal.
The stage 610 includes a sample and hold circuit to de.~ultiplex the EER-4 positional error signal as controlled by the timing nal S4". The constant and d;fferentiator stage 610 provides an ap~ropriate loop scaling constant and a differentiator function.
A third 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 staqe 618 to the input 620 of a second loop combiner 622.
The acceieration command signal ACC COM is connected through an inertia scaling stage 624 where required as determined .
. .
; .
g ~, by the acceleration feedbac~ signal. The output of the inertia scaling sta~e 624 is connected to a second input 626 of the second loop combiner 622. An acceleration feedback signa! ACC-4 is connected to a third input 628 of the servo loop combiner 622.
The output 629 of the second loop combiner 622 re?resents the composite acceleration, velocity, and position servo loop command si~nal connected to the servo valve sta~e 600.
The acceleration feedback signal ACLF may be obtained either bv an a~elerometer or by differentiating the VE~F feedback signal as further discussed in copending application Serial ~o. 732,977.
To detect a weld gun sticX during playbacX, the sensor/
transducer stage 592 provides a detector signal output ST~. The ~- - detector signal STK is generated by a sensor device a microswitch for example, connected to sense the'posl~i'bn of the'welding gun tips. For exaJmple if only one' o'f'the~tips of the welding gun, as diagrammatically illustrated in FIG. 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.
~0 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 Cl-C10 are utilized as external control - 25 data bits OX to 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 o' a weld step when the welding tips h~ve been com~anded 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 co~anded to move to the next weld point in the predetermined program sequence, steps 0-255, to accomplish the next programmed weld step.
Ho~ever, if a weld gun sticX is detected by interrogation of the '~ s~gn~l at a predetermined time interval ts after the end of the 10 CP~ weld step, the track alarm sequence in the memory 16 as dis-cussed 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 work-piece 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 C~W 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 aiarm latch 631 that utilizes the STK signal and an interrogate timing slgnal C~K to generate a weld stick latched signal STKL at 632. The interrogate timing signal C~K is generated 7~ ( .
at the output of a timer 633 a predetermined time interval ts after the ~alling edge of the CPW signal (high to low transistion).
Thus, the timing signal CHK is generated a time inte~val 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 sti'ck is detected (denoted by the STK signal) a time interval ts ~r the end of the current weld step.
A time interval of approximately 100 msec. for ts has been ~ound 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 CHK control stage-634 to generate a C~KP control pulse during the S8 timing signal interval. The CHKP timing signal is connected to advance the state of a tracX alarm sequence counter 635 on the ~alling edge of the CHKP signal. The tracX ala-m 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 ~eld 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 T~n that is connected as an address signal to an external address preset stage 636.
11.1~79 The ST~JL signal is also connected to the external address preset ~tage 636 as a data select signal. The external address preset stage 636 outputs a digital address counter signal An on a preaetermined number of data address control lines, ten in a specific embodiment to control 2 or 512 address locations. The An address counter data is utilized to preset the presetable address counter in the aA~ress/scan control stage 508. The preseta~le address counter as discussed hereinbefore and as described in more detail in the aforementioned application Serial ~os. 721,~05 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. Tne -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 trac~ alarm counter 635 is advanced after the completion of the first weld step to increment the outp~t 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 sisnal is generated at the output of a 2 input ~AND.gate 637. The inputs to the ~AND gate 637 are connected to the CHKP
sign21 of the CHK control stage 634 and t~e STKL sisnal of the tra~ 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 thro~gh memory control logic in the address/scan control stage 508 and the An signal presets the _ 15 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, 25~.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-~lSP signal is generated by the address~
scan control stage 508 in response to a TC signal from the TC
: 25 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 ~1~9;~7~ i an operate external control data bit that is read out of the me~ory 16 and utilized by the conveyor control e~uipment 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 ~ode.
An escape control stage.638 is pxovided to generate an output 639 ~hen an operator personnel or supervisor actuates a manual escape cont-ol-provided on the control panel OL the manip~l4toir 3p~aratus.- 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 sisnal and the D15 data bit line of the ED data bus as inputs. The D15 ~see TABLE I) N
data bit position includes the E/F escape flag control bit to denote or marX an escape step as discussed hereinbefore.
The escape advance stage 644 generates an output at 64~
to the escape latch 642 during the S8 ti~ing 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 t~ 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 ste?. In the specific embodiment discussed hereinbefore, there are eight escape steps arranged in the normal program steps ~255 and thus the csc2~e counter 645 is an eight state counter. The escape counter 6~S is advanced on the falling eage 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 .he 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 correspond-ing to the first designated or progra~med 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/P) 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 ECP~ signal is connected to one input of a two input NA~Dgate 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 Shat is currently being detected.
Briefly, and as discussed hereinbefore, if the manual escape control has been actuated, the memory 16 is preset ~ 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 worX operation program is step 25 for example and the second designated esca?e step is 50. ~rf 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 eseape path will be performed in accordance with the manipulator control apparatus and sequentially advanced step by step throughout the eight eseape path steps as taught to with-draw the ~anipulator arm.
Considering now the details of the timing control stage S12, the arithmetie unit 518 and the processor program memory stage 516 and referring to FIG. 16, the clock stage 650 generates t:he ~ elock signal. The W~ signal is connected to drive a prOgf~m address counter 652 of the timing control stage 512.
10 The counter 652 is arranged to divide the W~o signal by 32. The Wl 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 --- eonneeted to the W0' output of the clock 650 and generates a ~SO
15 phase elock signal and a 0'1 phase clock signal. The ~ and 0'1 phase signals are each generated once each period of the W0~o elock signal and in alternating phase relationships. The ~0 and signals are connected to the proeessor program memory stage 516 as timing signals to allow the proeessor program memory stage 516 to output two different 16 bit eontxol words to the aritmetie un~t .S18 within the time duration of each of the 32 program steps~
79 , I
The processor pxogram memory stage 516 includes a program ¦ memory 660 addressed by the mode address bus 522 and the program interval timing signals ~1 through W5 as explained hereinbefore.
The progra~n memory 660 in a prsferred embodiment is a programmable read only memory (PROM) of the type for example including 512 address locations each of which h~s associated therewith 16 bits of data representing a 16 bit control word. Thus the 8 bit prosram memory ~d~ ss, including the three bit mode address bus 522 and the 5 Di~ 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 dPcoder stage 664. The instruction _.
decoder stage 664 -includes the ~ and ~ phase clocX 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 ~ and ~0 phase clock ; 20 signals when two operations are to be performed by the arithmetic unit for a particular address location.
~n a specific embodiment, the instruction decoder stage 664 is implemented by a number of iogic gates connected to predetermined data lines of the 16 bit output 662 to invert the loqic states on the predetermined data lines during the ~0 proqram interval versus the ~1 proqram intervals.
9~79 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. Thè data format of the arithmetic unit 518 includes a random access data S memory 666 that is utiliz ed for the storage of the data utilized during the calculations performed by the arithmetic unit 518.
~eferring to TABLE II, the 16 bit control word data for-n~t controls the mode of operation of the random access data memory in the control word bit positions 4 and 5. Thus the 4 and 5 d~a Lines of the control word hus 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 wora on the data bus 520 as indicated in TABLE II. The random-access data memory 666 is capable o stor ing at least 16 bits of data (16 bit wide format) at 64 separate address locations.
Additional addressing of the memory loca~ions of the random access data memory 666 is provided by the GC0-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 de~ining a total 64 x 16 data format.
Thus, while calculations are performed ~y the arithmetic unit 518 for each axis during each respective scan interval, TABLB II
CONTROL WORD DATA FORMAT
PROM 1 ~1 < PROM 2 ~ l I ~ 1st Digit~ 2nd Digitl~-lst Digit- 1 2nd Digitl INPUT ¦ RAM LOCATION
DISABLE OO~ ¦ )01 M1 DISABLE 01 J ~ l 10 M2 EX1 10 ~ 011 M3 EX2 llJ : 10l MM5 DISABLE 00~~
Y 10 ~ , RAM MODE
Z 11 J ~ 0 ,RAM DISABLE
~1 RAM SELBCT
POSITION SCALAR _ ~ O RAM READ
l/N O } _ 1 ~ 1 RAM WRITE
~LU OPERATION
~OO F=ZERO
~01 F= A PLUS B
10 F= A MINUS B
= A
~OO 3 STATE
Ol 3 STATE
~~ - ~ 10 DATA LATCH
~11 DATA IN
. ~O DISABLE
MULTIPLEXER
_ _ _ C0 DATA B
~1 DATA A
27~
the random access data memory 666 writes in and reads out data under the control of the six address bits.
Ihe arithmetic unit 518 includes a 16 bit by l6 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 (~LU) 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 for~at as shown to xelectively 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 dasa memory 666. The data output bus 667 of the random access data memory 666 is also connected to an A data input of the arithmetic logic unit tALU) 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 eutput 680 of the data multipl0xer 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 ED .
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 S10 or the data selector stage 506 (Fig-ure 15). The main des 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 arith-metic 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 posi-tions respectively controls the ALU 67~ to add the A and B data in-puts. 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 "0 0"
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 ~7 .
~i~9;;~79 controls the multiplexer 676 to ~upply the data at the data input A and a "o~ 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 ED when the data bit position 9 is a "1". Thus, previously lat~hed data is outputted to the data bus EDn with a "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, TAs~E II. The PROM
1 outputs the data bit positions ~ through 16 or the control word and the PROM 2 outputs the 1 through 8 data bit p~ itions. 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 PXOM 2 and the 5-9 data bit positions are referred to as ~he 1st digit of the PROM 2. Similarly, the 9-12 data bit p~sitions 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 1st digit of the PROM 1.
Considering now the on-line operation of the arithmetic com~uter and processor unit 514 in more detail and referring to TAXLE III, the symbology or abbreviations listed therein are utilized to define the operations performed by the arithmetic ~mputer and processor unit 514 in response to the various control words.
~he 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 out~utted by the operational _95_ 1~19;~7~
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 III 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 set~ and the corresponding tions per~ormed by the arithmetic unit 518 are illustrated in ~A~L lV. The column in TAB~E IV labeled "Description" represents the operation per~ormed in terms OL the symbols of-TABLE III.
The column of TAB~E IV labeled "Operation" is an e~planation of the corresponding operation represented by the symbols in the "Descriptic ~' column. The column in TAs~E IV labeled l'Mneumonic'l is a program language representation of the corresponding symbols in the IDescription 1I c olumn. - -~
. .
The information in the TABLES III 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 mneumonlc program language representations are useful as a short-hand notation or code to aid a programmer or design engineer to write t~e 16 bit control words corresponding to the operation described in the mneumonic language and the symbolic description.
For example, referring now to TABLE ~, typical arithmetic and data handling operations and the corresponding 16 bit control words are listed. The corresponding IlMneumonicl' representation and "Description" representation as defined in TAB~ES III and IV
are also listed alongside each corresponding control word. The 16 bit control word for each of the typical operations is fully ~ ~19~:79 listed in the "CONTROL WORD" portion of TABLE V. Further, a "CoDED C.W." column lists a cont~ol word code for each correspond-ing 16 bit control word. The c i~:ol word code is formed by listing a hexdecimal code digit for each of the 4 bit groups in the 16 bit S control word; PROM l-DIGIT 1, PROM l-DIGIT 2, PROM 2-DIGIT 1, PROM 2-DIGIT 2 ~TABLE II). ~or example the first control word in TABLE V MOV M, R, represents the transfer to the Register *l of the data in the RU~M (random access memory 666) location being addressed ~d is coded as 02 OM. The 02 OM 4 digit code represents the full 16 31t control word 0000 0010 0000 lM~1. 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 i,n. T~-e M designation merely represents any of the eight data locations to be defined by the particular 3 bits.
,Referring now to TABLE VI, there are listed therein six sequence programs or operation groups to be performed by the arithmetic unit 518. Each of the six seauence 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 bi,t mode address bus 522. The 32 sequential control word locations at the particular mode address are addressed by the W1-~5 program interval timing signals. 'The 9;~7~ ( six sequence programs illustrated correspond to operational modes of the manipulator control spparatus: a teach i.nitalize 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(ACC~0).
The operations and coded control words listed in the ~e~ence programs control the arithmetic unit 518 'o 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 com~uter 34. The cverall computations represented by the control words in TAB~E II for the various sequence programs and corresponding operational modes 15 implement the equations discussed hereinbefore and listed below .
for convenience. .
MODE
. PTP: . POS = e VE~ = On ACC.-.0 " CP:
ACC = O: POS - en-l + en-en-l x m N
VEL ~ ~ ~ x Kv x 64 ~CC - o n n-l , .
~ 98 .
~9Z79 ( CP: . . !
ACC ~ 0: ~; POS - en-l ~ e m ~ e n-l x m x 1 x N
2 N KV 64 .
e ; VEL = 2 ~\ eK 64 - e ' " 'NEW v OLD , e; VEL = e n~ en - en - 1) x m = em ~. , N
e; ACC = ~ e x KvX 64 ' n ~ en - 1 where . m = interp. count . ¦
N ~ ,the nu~ber of interpolation interv5alepin the, ~ /64 LSD conveyor change Xv ~ nu~ber of inter~olation intervals/ step T:
- . nu~ber of conveyor LSD's/step jt : . en = next position (ne~t data Dn, the end of step n) , .
" - en-l= previous position (previous data ' ~
Dn-l, the end of step n-l) ': I -- , eNEW= en = next'velocity (end of step r.) ~LD= ~n-l = previous velocity ~end of .' .. ' step n-l) , Om = present ve,locity (commanded) , ~.
n ~ present step identification', , ~he symbol en-l in on-line operation is al~ays utilized to refer to the previouS position at the end of the last step data Dn 1 The , .
- s~ ~ol en 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 ' i ~
'on-line computation and control unit 18 regardless of whether the ; ¦`
'step is a CP (ACC - 0) or CP (ACC ~ 0) mode step.
:
- . . ' '''' ~ .
::
_99_ (' ~119Z79 i' I
TABI,E III - INSTRUCTION SET
(Symbology) . . I
SYI~'~BOLS
R Register ~l Register ~2 (Temporary Reg.) OUTPUT enable T* ~egister ~2 (Temporary Reg.) ouTPuT~disable ~n RAI~ Address COO ;n~w position data (l, 2, 3) ~n-l ~01 ;previous position data ~n OlO ;new velocity command ~ end point ~n-I Oll ;preYioUs velocity command @ end poin.
~m _ - - lOO ;updated position command ~m lOl ;updated Yelocity command . llO ;position difference SCRATCH lll ;scratch pad use N ~ of Inter~olation intervals per current step ~externa . 'progra~led) ~* Interp. count (Input data3 ~v!~l/Tr) Velocity constant (externally programmed) in binary 128 form ~c ~ of ConYeyor LSD change in the step --~ X Multiplier X input Y ~ultiplier Y ;nput Z M~ltiplier Z output D Data on DataBUS, EDn .( ) content of memory location, RAM, or Registers enclose~ -~
. parentheses . .
"Is transferred to"
f Addition ~ .
i.
Z79 (-. . , I
_ 2's comple~ent subtractidn .
* 11ultiplication ., Di~iSion . . _ RAM Addr. in HEX. -. Decimal Form .' . .
1~ (4 3 2 1) 4 is ~M select bit . ~ n ~ D Q
~n-l 9 1 0 0 1 - ~n A 1 0 1 0 n - l B ~ 0-1 1 ~m C 1 1 0 0 ~m D 1 1 0 1 . . ~--. ~ E 1 1 1 0 . SCRATCIl F 1 1 1 1 .. . ' -~ ' ;' '; . . ' , , . ~
.
: ' . ,,. . , ' .
' ,' ' ~. .
,::
.
.
-~01-TABLE IV - SAMPLE INSTR~CTION AND
CORRESPONDING OPERA~ION
Data Transfer Group Operation Mnemonic Descriptlon ~Y ~,R (R ~,tMn) .. data in RM location n is transfered to Reg. ~1.
~V ~,X (X) ~ tMnj data in RAM location n is transfered to X inpct - of ~PY.
MOY ~, T ~T ]~.(Mn) data in RhM location n is transfered to Reg. ~' with output disable mode MOV T,M (Mn)~ (T) data in Reg. ~2 is transfered to RAM location n.
Arith~st;.c GrouP
ZER0 X (X}~~0 set ZERO X input of multiplier ZERO T (T )~-0 , set ZERO in Reg. l2 with output disable mode.
ADD M,X tX)4-(~ ~ (R) Add R~M location to Reg, tl and store the result to X input of multiplier ADD M,T (T~-(M~ I (R) Add RAM location to Reg. ~l and store the result to Reg. ~2.
ADD M,T (T )~(M~-~ (R) Same as above but Reg. ~2 i5 in output disable mode SUB M,X (X)~-(M~ - (R) -. Subtract content of Reg. ~l from RAM location and -store the results into X input of multiplier.
SUB M,T (T)~-~M~ - ~R) Subtract content of Reg. ~l from R~ location and -. ~ ~ , store results into Reg. ~2.
SUB M,T (T )~ R) Same as ~bove but Reg. ~2 is in output disable mode.
DIV N (T~ ~ ~X1 * (Y) N Output from the multiplier is divided by N and . . storcd in Reg. ~2.
DIY 2~ ~T )~(X) ~ (Y) t 2N Output from the multiplier is divided by 2N an~
stored in Reg. l2 ' ,, . . . : .
Il0 Control~~roup IN M , (I.~ D data on d,ata bus is inputed to RA~ location n.
YIN EXl (Y)~-EXl data from External Device EXl on External ~us is in-, puted to Y input of multiplier.
YIN EX2 ~Y)~-EX2 data from External Device EX2 on External Bus is in-. puted to Y inp,ut of multiplier.
OUT M D~ 'n) data m RAM location n is outputed to Data Bus 7~
TABLE IV
OUT ZERO D~O ZERO i5 outputed to Data Bus .. NOP ' NO Operation NOPT . No Operation but Reg ~2 output is enable' Double Operation Instructions IADD M,X Combination of Input instruction and~
' . arithmetic instruction ' t ~ -IADD M,T
ISUB M,X . ' .,T
I~ERO M,X
IZERO M,T
IPASS M,X
IPASS M,T
TADD M,X Combination of moYe 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
~: : . ' .
.
. ~
, ~ ,, .. ' . . .- ' ' ., .
', . . .
( O = le C e 1~ ~ ;~ O C C ~ C I 3 3 3 I D ~ 3 2 2 3* 3 3 3l ~ 3 ~ X ~ 3 3 3 !
I,............................................ I
t t It t t t t I ~ x t t t t t t t t t o . . . ~ * ~ + + _ .-s . . .' ,~ ,c ~ .~ . ~ o I ' ~ n ~
l X _ .
~ o I o -' _ o o o o" o o c~ o o o 1~ ~3 O O I ~ -- o O O O O O O O O o O O O O O I-- r i O O _ _ _ _ `_ o O O O O C: O- O O O 0 ' 0 _ ~ O O O O O _.'~ O 0 _ O O _ ~ 1 Q ~ ~-X~ ~
_ _ _ _ - 3`
o o o o o o o o o- o ~ o o 1 o o o o o o o -- _ o o o o o o o o o o o -- i o rO
o o o o o o o o o o o o o o o o o o _ -o :t~ t~
_ O O O O O O O - O, O - O O O _ O O O ~D~
_ _ _, .__ _ ~ ~3 . o o o o _ _ _ _ o _ _ o _ o o _ o o O~x! o _ o _ _ _ o_o _ _ _ o o o o o o ~ ~ ~1~!
~ o _ _ _ o o o o o _ _ _ o o o _ _ o o~x3 o _ o o o o o o o o o o o o o -' o .o o X~
_ _. ~ ~
, _ _ o o o o _ _ _ _ _ _ _ _ _ - - - xla~.
- 3 3 _ O O O O 3 5 3 3 3 3 O O 3 3 3 3 XlP O
:~ 3 3 _ O O ~ O 3 3 ~ 3 3 3 O O 3 3 3 3 x r~ o : 3 3 O O O O O 3 3 3 2 3 - O O 3 3 3 3 ~~ 1-.. , .. _. _ ~ . ~ t~ I
o ~ 5 1~ ~ o ~ o. o 0~ ~ c~' . ~ ~ I _ ~_ . ~o ~ 1~ ~3 ' 1~ 13 13 ,3I~3;I~ 13 ~ l-3l3'3!3 ~
.. ,. ..... .
- 10~-3~79 z 2 1 -t I I _t ~ ~- - -t -t ~-t -t ~ ~ I 1 3 O O ~ ~ ~ 'D 'O r~l ~ ~ ~ ~ Vl ~ ~ t- C
~ ~ :~ rr~ ~ ~ r-~ c C O O C C O O _t ~ ..
_t ~ 2. ~ v~ ~ ~ w w o v ~ c~ o o 3 ~ -o--o - ~vr ~ O O 3 3 3 3 3 _ 3 3 ~ a 3 3 3 3 3 3.... ~. , __~, . ~ ~ . .~ . . _ x _~ x ~ x _I x t x ~ x _~ ~ _~ x o n _I l _ l l ._ ~ 2 ~ ~ ~ ~ ~_ ~_ ~- ~ O
o o~ 3 3 3 3 3 :3: 3 3 3 3 ~ 3 3 3 t ,_ _ _ _, _ _ _ _ _ _ _ _ _ _ ~:, _ I o ~o o t t t. t t t t t t t t I t t t t .
_ o o o v ~' ~ ~ ~ 1 0 o o o o ., ~ ~ ~ .
., _ _ - _ . _ _ ~ i~ _ ~,_ .
x ~ x ~ _ ~ x ~ x _, _~ _ ~ _ ~ ~ ~ * _ * _ DO O ~ X ~ X _ ~ * t -~ x -( x ~-- t ~- t ~2 2 _ ~ _ t --_ o _ _ _ ._ t ^ t ^ ~
., t t t ^ 3 f t t t t ~ 3 ~ . _ o o 3 --o ~. ~ ~ ~ 3 --3 -- o w 3 _ 3 3 3 3 _ .~. _ + . a c ~~_,. .___., _ . ~ _ _ _ ~ _ + ~ ..
1 ' ;" - ^~ ;7 ;" , ;2~ _, ..
., l ,- .~ x ~3 o o o o o o o o o j o o o o o . o o o o _ I t~t o o o o o o c~ O ol,o,o o o o ulx t o o o o o o o o o ~ o o o o o o o o O `x o o _ o ~ o ~ o - I O _ o ~ o ~ o ~- o-- w ' .
1- . x 'g o o o o l ~ - ' ~ o o o ~x ~
o o o o o I'`-- 1 - o o ~x t~
o ~o o o o o o o o l.o o o o l o o o o o -o ~-_ o _ _ _ o o o' ol- _ _ -lo o o o _ xl~
l ~ J
o o o _ o ~ ~ 1- - I - - o _ CD
o o _ o o. _, ,_, ,o o_l~ 1 ~ ~ ~ o o x o o _ o o _ _ o olo ~ -`1 - _ o I x o o _ _ _ ~ ~ ~ ~ 1- - - - ' - - - _ o I x _ l l l l O O _ _ _ _ _ _ I _ _ ~ _ _ j _ _ I _ ~ I D I
o o ~, 3 3 3 3 3 -;3'313 313 ~13. 3 o I x . O 13 3 3 3 3 3 313 313 313 313 3 O I x o 0 13 3 3 3 3 - 3 13 `3 13 313 3 13 3 o I x I ~ : I I ~v;
o o I-- o ~ o _ I o _ I o _ Io _ I o ~ I o ~ lo 1~
- I- - - 1 ~ 1 1 ~
3 l3 11~3 ~3J ~ 3D 1~ 1~3. 13 !l3' 13W'II3 I~n 13 ~3 ~ 5 ~ ~
- lOS-TABLE VI
TOP MODE - TEACH - I~ITIALIZE
_ I .. .
ADDRES5 ¦¦ PIR~ 1 PR~/ ~ INSTRUCTIOII COI~I~,ENT5 00I 00 i 00 NOP _ .
0100 00 ~IOP , .
02I 00 00 IIOP ~ .
03! ~P
04 ', 00 00 ~OP . .
0~ 00 00 NOP .
07 , 00 00 NOP .
_ _ .
09 . 00 ~ .18 111, On write Encoder into RAM
OA¦ 00 88 ZERO, T~ Set ZERO in Temp. (dis~le) OB! ol oo NOP T SEND OUT (ACCL = O) OCi 01 . 00 IIOP T - .
OD . ~ 01 00 NOP T ~
OE ; 1. 01 00 NOP T SEND OUT (~EL = O) . . _ ..
lo! oo oo NOP
)1 ¦ 00 00 - NOP .
12 00 00 NOP . .
14 00 00 NOP .
1501 E8 OUT, On One~l into Te~p.
1601 00 i~OP T
17. 01 00 NOP ~ S~ND OUT (POS ENCODER) ;
7~ ( (, .
TABLE VI (cont ) _ ., . . : , TOP .
I! I _ ADDRESS ¦ PROII 1 PROM 2 1 INSTRUCTION COllMEllTS
_ _. ~. .
1~ , 00 00 ~IOP .
1 9 ' 00 00 t~OP ~ ~, lA 1 00 OO NOP .
13 I O0 OO NOP . ..
lC 1 00 OO NOP . .
lD ¦¦ 00OO NOP .
lE ¦1 O0' OO NOP . .
lF ¦1 00OO NOP .
_ . ., T EbC Jt ADDRESS ,¦ PROM 1 ¦ PROM 2 ~ sTRucTIoN COMMENTS
. 20 1 O0 . O0 . NOP
. . 21 . O0 OO NOP .
. 22 O0 OO NOP . ..
23 00 OO NOP . .
24 00 OO NOP . . . . ...... .
. 25 OO OO NOP . .
: , 26 O0 OO NOP . .
27 O0 OO. NOP _ . 28 ¦ O0 OO NOP . .
. 29 00 OO NOP .
2A. 00 88 ZERO, T~ Set ZdRisail TemP~ (outpu~
2B 01 : OO NOP, T SEND OUT (ACCL = 0) ~9Z79 TABLE VI (cont ) TEAC~I MODE
_ ~ . '~, ADDRESS li PROM 1 PROM 2 INSTRUCTlON COMMENTS
_ __ ! __ ___ . .
2C I Ol OO .I~OP T _ 2E Ol OO NOP T SEND OUT (VEL = ~) 2F ¦ 01 OO N OP T _ 30 OO OO ~IOP
31 l~ OO OO . NOP . `
32 -¦1 OO OO NOP
33. I~i OO OO . ~iOP
34 '¦ N0.P
i Ol . E8 O~T en ~ransfer e to Temp.
36 ~ 01 . . 00 , NOP T SEND OUT ( P0S - enew) 37 1 Ol OO NOP T
_ ~
38 1~ ~P .
39.- 11 OO OO ~IOP. .
3A . - OO 00 . NOP . .
3B OO OO .. NOP . .. .-3C- OO OONOP .-3D OO OONOP . .
3E OO OONOP . .
',~, '' __ _ _____ _ ~1~9279 TABLE VI ~cont ) PTP or ~TPc MODE
. , . bDDRESS .¦ PROM 1 PROIl 2 ¦ IIISTRUCTI NL COMMENTS .
40OO Oo NOP ¦ _ , 41I OO OO NOP ¦ .
42I OO 18 IN, ~n ~ write data into ~neW
43i OO OO I NOP
44 1 ! NOP ~
4 5¦ OO OO NOP ¦ .
46, OO OO NOP
47, OO OO NOP ¦
48j~ OO OO NQP
49jl OO , OO NOP .
4A¦' 88ZERO, T* Set ZERO in Temp. ( disable) 4Bji Ol OO NOP T SEND OUT (ACCL = O) .
4Ci' 01 . OO NOP T . . .
4D¦i OO NOP ~ .
4E~¦. Ol Oo NOP T SEND OUT (VEL = O) 4Fl~j Ol I . OO NOP T . .
.
50~¦ Ol ¦ 18. MC~,T,~n-1 Store O into ~ old 51.~ OO OONOP .
52~ 00 OONOP . ' ~ :
53j OO~ OoNOP
54I OO OoNOP . .
S~¦ Ol E8OUT, ~n ~new into Temp.
56Ol OONOP T SEND OUT (POS = ~ne~) 57L Ol I OONOP T .
--109--, 1~9~79 (' TA~LE VI (cont ) _ _ ., .
P~P o- PTPC .
.1 ~ I --1-ADDRESS PR01~ 1 PROM 2 I NSTRUCT I ON I COllMENTS
l .
58 00 OO . l~OP
~9 00 00 .~OP
5A . OO OO NOP
SB ¦¦ O1 OO NOp T . .
. . 5C ! oi ,9 . MOY,T.~n-1 Store ~new into ~old . SD j~ 00 . OO NOP
5E OO OO NOP .
. . _ __ ' In = n CASE
1l 00 ~OO I~OP
61 l O0 OO ~Oi 62 . OO OO NOP . . .
63 00 OO - ~lOP
64 00 OO NOP . .
.00 OO . NOP _ . ~ . .
67 OO OO NOP __ 68 O0 OO NOP .
69 OO .OO NOP
6B j OO OO . NOP.
6C ¦ 00 OO ¦ NOP _ . -- 110- . ' ~927~ ( TA~3LE VI tcont) __ -~~ n case !
~1 l . ... .
ADURESS ¦~ PP~OM 1 ¦ ~ROM 2 INSTRUCTION ~ COMMENTS
6D OO OO NOP . .
6E OO OO ~ NOP .
6F OO OO NOP ~ ..
_ _ ., OO OO NOP I .
71 OO , OO NOP .
72 OO OO t~OP .
73 OO OO ~OP
74 OO OO NOP .
76 ¦ OO OO NOP . ;
76¦¦ OO ~ OO NOP .
77 ! oo ~oP
78 ¦ OO OO NOP .
. 7~ OO . OO NOP . .
7A OO OO NOP . . I.
- 7B. .Ot E8 OUT 9n ~new ;nto Temp. .
: 7C .Ol 19 MOY,T,~n-l Transfer to RAM ~ old . 7D Ol EA OUT, ~ 9new into Temp. .
7E Ol lB MOV,T,~n-l Transfer to RAM ~ old .
7F OO OO NOP . .
, = =_ .
,., . .' .. , .
. . . .. ' . .
. . ,. ' ' . .
__ , _ -111-- , TABLE VI (cont) CP (ACC=O ) M~de ADDRESS l PROt~ 1 I PROI~ 2 INSTRUCTION COMMENTS
. ~. . . I ~
02 09 MOY,~-l,R read 901d from RAM to Rt~ ~1 81 EO 60 YlN, Xv Set K v into MPY
82 00 18 IN. 9n ~Irite data into RAM 9ne~
83 j 01 C8sue ,~,T Get ~9 into Temp.
84 i 01 lEMOV T, ~ Temp ~9 (RAM) ¦ 10 6E.MOV ~9,X I ba into X
86 3C 80DIV 2 tl 87 . 01 lA ! MOV,T,~n Transfer Temp to ~new 88 I oo oo ~ICP
89 I 00 ' 00 ~IOP
8A ¦ 00 , 88ZERO,T*
8B 01 00 NOP T SEND OUT (ACCL = O) 8c ol oo NOP T -- .
8D 01 EAOUT,~n 6et ~new on BUS
In a preferred embodiment, the arithmetic unit 518 includes a nu~ber 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 in-cludes 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 Ml and M2 on the EDn bus during the Gl scan time interval. A
5 TEACH signal, an initialization signal, I~ITIL., 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 ~ode bits Ml and M2 to senerate the APS-7 program mode address signals. The follo~ing AP;-7 program mode acdress 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 ES (End of Interpolation Step) 0 ~__ lS CP (ACC=0) 1 0 0 CP (ACCrO) -. " .. . ~ -O - 1 -The ACL signal is decoded by an in.erpolation interval number decoder stage 534. The ACL signal is decoded and generated when the interpolation interval coded bits N3, N2 and Nl are a "lOl" or a "110". As discussed ` hereinbefore, these codes represent a CPtACC~0~ mode, an acceleration step. The interpolation interval number decoder stage 534 also decodes the information in the N3, ; N2 and Nl coded bits during the Gl 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 Nl bits as shown in Table I.
.
~L119279 ( An Nt2) decoder stage 536 is provided to output the three data bits N3, N2 and ~1 at a data bus 538 when a D2, divide by 2, input control sisnal is a low logic state.
~hen the D2 control signal is a high logic level, the N(2) decoder 536 ou~puts the incremented ~3, ~2 and ~1 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 P.rithmetic ~nit 518. The Xv constant is decoded from the TY~i - TK6 data bits during the Gl, G2 and G3 multiplex scan ini~ervals by a Kv velocity constant decoder stage 540. The Kv velocity constant decodes 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 xepresents 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 quantSty m, represents the interpolation interval current-ly being generated in tlie 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 ~rom 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 _75_ ~
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 ~us 520.
The interpolation counter 55g in a specific embodiment is a divide by 256 counter with 9 binary state outputs determining the nu~ber 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, 12~ and 256 outputs of the int~rrolation interval number deco~er 53~ are connected to a second ~ata input of the end of step detector stage 556. The er.r_ of step detector 556 includes a logic qate array as ~escribed 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 pre-determined period of time after the end of step detector 556 detects an equality and generates an ES signal.
The interpolation counter 554 is ad~ranced in count by a signal CVTC representing a conveyor coincidence signal. The conveyor coincidence signal CVTC is generated by a conve~or synchronization control stage 560. The conveyor synchroniiation 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 o~ put signal from the aritmetic unit 518 in the CP
mode on the ED bus (or as read out of the memory 16 in a PTP
11:19279 or PTPC mode) ~ith the conveyor encoder data generated by the conveyor encoder 32 in the G2 conveyor scan interval. When coin-cidence is detected by the comparator and D/A converter stage 564, the P and M signal lines are both a low logic state enabling the conveyor synchronization control stage 560 to generate a CVTC conveyor coincide~ce signal to the interpolation cou~ er 554. The CVTC
signal advances the output 552 of the interpolation counteri554 b,~ one binary state. Thus the . quantity m is advanced by one ' .,; nary nu~ber. The conveyor synchronization control stage 560 is ena~!ed during the S2 time interval (FIG. 17) at 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 ~_ 15 timing intervals and latched during the eleventh program timing interval by an ECLK timing signal generated by the timing control stage''S12. The position comman'd signals generated by the arith-'metic/processor unit 51~ 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 co~nand signals and the encoder signals during a co~mand sa~nple interval during the 24 through 32 program time intervàls 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 EE~ of the D/A converter 564 represents the analog result of the digital data comparison performed during each scan interval Gn. The multiplexed analog 7~9 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 CO~I and the VEL-4 COM signals are generated by a velocity/acceleration command stage 582. There are six such velocity/accelerstion 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 ~nd processor unit 514.
The EDn data bus during the 12th program timing interval of each Gn scan interval (G4 for rotary) represents the acceleration command signal in digital form generated by the arithmetic unit 518. The ED 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.
j - 78 -~9'~79 ~ ( The buffered output of the acceLeration register 584 is connected to a multiplying D/A converter 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 530 that scales a conveyor tachometer input signal CVTK The CVT~ signal is generated by a conveyor t_chometer included in a sensor/transducer stage referred to genera~ly at 592. The CVTK siqnal is scaled by a factor to reprssent correct acceleration units,for example performlng an x square function.
Similarly, the velocity register 586 is connected to a D/A convsrter 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 sisnal. Thus, the D/A converters 588 and 594 include respective, ~edicated sample and hold stages for each of the six controlled axes and output a respective analog representation ACC COM and VEL CO~S of the digital command signals on the EDn bus in accordance with the present conveyor speed. A timing stage 596 is connected to the Sn timing signals to produce a delayed Sn" timing signal for use by the rotary servo loop eontrol stags 580 and other axas to insure the output of an unambiquous, stable ACC COM signal and a VE~ COM signal before the EE~, ACC COM and VEL COM signals are combined by the rotary servo loop control stage 580 and the other qtages.
The rotary servo loop control stage 580, includes a loop combiner 606 having the VEL COM signal as one input. A second input 608 to the loop co~ibiner 606 is generated at the output of a constant and differentiator stage 610. The input of the stage S 610 is connected to the multiplexed and EER positional error signal.
The stage 610 includes a sample and hold circuit to de.~ultiplex the EER-4 positional error signal as controlled by the timing nal S4". The constant and d;fferentiator stage 610 provides an ap~ropriate loop scaling constant and a differentiator function.
A third 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 staqe 618 to the input 620 of a second loop combiner 622.
The acceieration command signal ACC COM is connected through an inertia scaling stage 624 where required as determined .
. .
; .
g ~, by the acceleration feedbac~ signal. The output of the inertia scaling sta~e 624 is connected to a second input 626 of the second loop combiner 622. An acceleration feedback signa! ACC-4 is connected to a third input 628 of the servo loop combiner 622.
The output 629 of the second loop combiner 622 re?resents the composite acceleration, velocity, and position servo loop command si~nal connected to the servo valve sta~e 600.
The acceleration feedback signal ACLF may be obtained either bv an a~elerometer or by differentiating the VE~F feedback signal as further discussed in copending application Serial ~o. 732,977.
To detect a weld gun sticX during playbacX, the sensor/
transducer stage 592 provides a detector signal output ST~. The ~- - detector signal STK is generated by a sensor device a microswitch for example, connected to sense the'posl~i'bn of the'welding gun tips. For exaJmple if only one' o'f'the~tips of the welding gun, as diagrammatically illustrated in FIG. 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.
~0 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 Cl-C10 are utilized as external control - 25 data bits OX to 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 o' a weld step when the welding tips h~ve been com~anded 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 co~anded to move to the next weld point in the predetermined program sequence, steps 0-255, to accomplish the next programmed weld step.
Ho~ever, if a weld gun sticX is detected by interrogation of the '~ s~gn~l at a predetermined time interval ts after the end of the 10 CP~ weld step, the track alarm sequence in the memory 16 as dis-cussed 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 work-piece 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 C~W 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 aiarm latch 631 that utilizes the STK signal and an interrogate timing slgnal C~K to generate a weld stick latched signal STKL at 632. The interrogate timing signal C~K is generated 7~ ( .
at the output of a timer 633 a predetermined time interval ts after the ~alling edge of the CPW signal (high to low transistion).
Thus, the timing signal CHK is generated a time inte~val 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 sti'ck is detected (denoted by the STK signal) a time interval ts ~r the end of the current weld step.
A time interval of approximately 100 msec. for ts has been ~ound 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 CHK control stage-634 to generate a C~KP control pulse during the S8 timing signal interval. The CHKP timing signal is connected to advance the state of a tracX alarm sequence counter 635 on the ~alling edge of the CHKP signal. The tracX ala-m 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 ~eld 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 T~n that is connected as an address signal to an external address preset stage 636.
11.1~79 The ST~JL signal is also connected to the external address preset ~tage 636 as a data select signal. The external address preset stage 636 outputs a digital address counter signal An on a preaetermined number of data address control lines, ten in a specific embodiment to control 2 or 512 address locations. The An address counter data is utilized to preset the presetable address counter in the aA~ress/scan control stage 508. The preseta~le address counter as discussed hereinbefore and as described in more detail in the aforementioned application Serial ~os. 721,~05 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. Tne -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 trac~ alarm counter 635 is advanced after the completion of the first weld step to increment the outp~t 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 sisnal is generated at the output of a 2 input ~AND.gate 637. The inputs to the ~AND gate 637 are connected to the CHKP
sign21 of the CHK control stage 634 and t~e STKL sisnal of the tra~ 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 thro~gh memory control logic in the address/scan control stage 508 and the An signal presets the _ 15 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, 25~.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-~lSP signal is generated by the address~
scan control stage 508 in response to a TC signal from the TC
: 25 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 ~1~9;~7~ i an operate external control data bit that is read out of the me~ory 16 and utilized by the conveyor control e~uipment 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 ~ode.
An escape control stage.638 is pxovided to generate an output 639 ~hen an operator personnel or supervisor actuates a manual escape cont-ol-provided on the control panel OL the manip~l4toir 3p~aratus.- 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 sisnal and the D15 data bit line of the ED data bus as inputs. The D15 ~see TABLE I) N
data bit position includes the E/F escape flag control bit to denote or marX an escape step as discussed hereinbefore.
The escape advance stage 644 generates an output at 64~
to the escape latch 642 during the S8 ti~ing 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 t~ 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 ste?. In the specific embodiment discussed hereinbefore, there are eight escape steps arranged in the normal program steps ~255 and thus the csc2~e counter 645 is an eight state counter. The escape counter 6~S is advanced on the falling eage 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 .he 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 correspond-ing to the first designated or progra~med 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/P) 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 ECP~ signal is connected to one input of a two input NA~Dgate 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 Shat is currently being detected.
Briefly, and as discussed hereinbefore, if the manual escape control has been actuated, the memory 16 is preset ~ 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 worX operation program is step 25 for example and the second designated esca?e step is 50. ~rf 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 eseape path will be performed in accordance with the manipulator control apparatus and sequentially advanced step by step throughout the eight eseape path steps as taught to with-draw the ~anipulator arm.
Considering now the details of the timing control stage S12, the arithmetie unit 518 and the processor program memory stage 516 and referring to FIG. 16, the clock stage 650 generates t:he ~ elock signal. The W~ signal is connected to drive a prOgf~m address counter 652 of the timing control stage 512.
10 The counter 652 is arranged to divide the W~o signal by 32. The Wl 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 --- eonneeted to the W0' output of the clock 650 and generates a ~SO
15 phase elock signal and a 0'1 phase clock signal. The ~ and 0'1 phase signals are each generated once each period of the W0~o elock signal and in alternating phase relationships. The ~0 and signals are connected to the proeessor program memory stage 516 as timing signals to allow the proeessor program memory stage 516 to output two different 16 bit eontxol words to the aritmetie un~t .S18 within the time duration of each of the 32 program steps~
79 , I
The processor pxogram memory stage 516 includes a program ¦ memory 660 addressed by the mode address bus 522 and the program interval timing signals ~1 through W5 as explained hereinbefore.
The progra~n memory 660 in a prsferred embodiment is a programmable read only memory (PROM) of the type for example including 512 address locations each of which h~s associated therewith 16 bits of data representing a 16 bit control word. Thus the 8 bit prosram memory ~d~ ss, including the three bit mode address bus 522 and the 5 Di~ 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 dPcoder stage 664. The instruction _.
decoder stage 664 -includes the ~ and ~ phase clocX 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 ~ and ~0 phase clock ; 20 signals when two operations are to be performed by the arithmetic unit for a particular address location.
~n a specific embodiment, the instruction decoder stage 664 is implemented by a number of iogic gates connected to predetermined data lines of the 16 bit output 662 to invert the loqic states on the predetermined data lines during the ~0 proqram interval versus the ~1 proqram intervals.
9~79 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. Thè data format of the arithmetic unit 518 includes a random access data S memory 666 that is utiliz ed for the storage of the data utilized during the calculations performed by the arithmetic unit 518.
~eferring to TABLE II, the 16 bit control word data for-n~t controls the mode of operation of the random access data memory in the control word bit positions 4 and 5. Thus the 4 and 5 d~a Lines of the control word hus 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 wora on the data bus 520 as indicated in TABLE II. The random-access data memory 666 is capable o stor ing at least 16 bits of data (16 bit wide format) at 64 separate address locations.
Additional addressing of the memory loca~ions of the random access data memory 666 is provided by the GC0-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 de~ining a total 64 x 16 data format.
Thus, while calculations are performed ~y the arithmetic unit 518 for each axis during each respective scan interval, TABLB II
CONTROL WORD DATA FORMAT
PROM 1 ~1 < PROM 2 ~ l I ~ 1st Digit~ 2nd Digitl~-lst Digit- 1 2nd Digitl INPUT ¦ RAM LOCATION
DISABLE OO~ ¦ )01 M1 DISABLE 01 J ~ l 10 M2 EX1 10 ~ 011 M3 EX2 llJ : 10l MM5 DISABLE 00~~
Y 10 ~ , RAM MODE
Z 11 J ~ 0 ,RAM DISABLE
~1 RAM SELBCT
POSITION SCALAR _ ~ O RAM READ
l/N O } _ 1 ~ 1 RAM WRITE
~LU OPERATION
~OO F=ZERO
~01 F= A PLUS B
10 F= A MINUS B
= A
~OO 3 STATE
Ol 3 STATE
~~ - ~ 10 DATA LATCH
~11 DATA IN
. ~O DISABLE
MULTIPLEXER
_ _ _ C0 DATA B
~1 DATA A
27~
the random access data memory 666 writes in and reads out data under the control of the six address bits.
Ihe arithmetic unit 518 includes a 16 bit by l6 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 (~LU) 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 for~at as shown to xelectively 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 dasa memory 666. The data output bus 667 of the random access data memory 666 is also connected to an A data input of the arithmetic logic unit tALU) 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 eutput 680 of the data multipl0xer 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 ED .
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 S10 or the data selector stage 506 (Fig-ure 15). The main des 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 arith-metic 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 posi-tions respectively controls the ALU 67~ to add the A and B data in-puts. 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 "0 0"
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 ~7 .
~i~9;;~79 controls the multiplexer 676 to ~upply the data at the data input A and a "o~ 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 ED when the data bit position 9 is a "1". Thus, previously lat~hed data is outputted to the data bus EDn with a "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, TAs~E II. The PROM
1 outputs the data bit positions ~ through 16 or the control word and the PROM 2 outputs the 1 through 8 data bit p~ itions. 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 PXOM 2 and the 5-9 data bit positions are referred to as ~he 1st digit of the PROM 2. Similarly, the 9-12 data bit p~sitions 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 1st digit of the PROM 1.
Considering now the on-line operation of the arithmetic com~uter and processor unit 514 in more detail and referring to TAXLE III, the symbology or abbreviations listed therein are utilized to define the operations performed by the arithmetic ~mputer and processor unit 514 in response to the various control words.
~he 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 out~utted by the operational _95_ 1~19;~7~
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 III 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 set~ and the corresponding tions per~ormed by the arithmetic unit 518 are illustrated in ~A~L lV. The column in TAB~E IV labeled "Description" represents the operation per~ormed in terms OL the symbols of-TABLE III.
The column of TAB~E IV labeled "Operation" is an e~planation of the corresponding operation represented by the symbols in the "Descriptic ~' column. The column in TAs~E IV labeled l'Mneumonic'l is a program language representation of the corresponding symbols in the IDescription 1I c olumn. - -~
. .
The information in the TABLES III 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 mneumonlc program language representations are useful as a short-hand notation or code to aid a programmer or design engineer to write t~e 16 bit control words corresponding to the operation described in the mneumonic language and the symbolic description.
For example, referring now to TABLE ~, typical arithmetic and data handling operations and the corresponding 16 bit control words are listed. The corresponding IlMneumonicl' representation and "Description" representation as defined in TAB~ES III and IV
are also listed alongside each corresponding control word. The 16 bit control word for each of the typical operations is fully ~ ~19~:79 listed in the "CONTROL WORD" portion of TABLE V. Further, a "CoDED C.W." column lists a cont~ol word code for each correspond-ing 16 bit control word. The c i~:ol word code is formed by listing a hexdecimal code digit for each of the 4 bit groups in the 16 bit S control word; PROM l-DIGIT 1, PROM l-DIGIT 2, PROM 2-DIGIT 1, PROM 2-DIGIT 2 ~TABLE II). ~or example the first control word in TABLE V MOV M, R, represents the transfer to the Register *l of the data in the RU~M (random access memory 666) location being addressed ~d is coded as 02 OM. The 02 OM 4 digit code represents the full 16 31t control word 0000 0010 0000 lM~1. 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 i,n. T~-e M designation merely represents any of the eight data locations to be defined by the particular 3 bits.
,Referring now to TABLE VI, there are listed therein six sequence programs or operation groups to be performed by the arithmetic unit 518. Each of the six seauence 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 bi,t mode address bus 522. The 32 sequential control word locations at the particular mode address are addressed by the W1-~5 program interval timing signals. 'The 9;~7~ ( six sequence programs illustrated correspond to operational modes of the manipulator control spparatus: a teach i.nitalize 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(ACC~0).
The operations and coded control words listed in the ~e~ence programs control the arithmetic unit 518 'o 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 com~uter 34. The cverall computations represented by the control words in TAB~E II for the various sequence programs and corresponding operational modes 15 implement the equations discussed hereinbefore and listed below .
for convenience. .
MODE
. PTP: . POS = e VE~ = On ACC.-.0 " CP:
ACC = O: POS - en-l + en-en-l x m N
VEL ~ ~ ~ x Kv x 64 ~CC - o n n-l , .
~ 98 .
~9Z79 ( CP: . . !
ACC ~ 0: ~; POS - en-l ~ e m ~ e n-l x m x 1 x N
2 N KV 64 .
e ; VEL = 2 ~\ eK 64 - e ' " 'NEW v OLD , e; VEL = e n~ en - en - 1) x m = em ~. , N
e; ACC = ~ e x KvX 64 ' n ~ en - 1 where . m = interp. count . ¦
N ~ ,the nu~ber of interpolation interv5alepin the, ~ /64 LSD conveyor change Xv ~ nu~ber of inter~olation intervals/ step T:
- . nu~ber of conveyor LSD's/step jt : . en = next position (ne~t data Dn, the end of step n) , .
" - en-l= previous position (previous data ' ~
Dn-l, the end of step n-l) ': I -- , eNEW= en = next'velocity (end of step r.) ~LD= ~n-l = previous velocity ~end of .' .. ' step n-l) , Om = present ve,locity (commanded) , ~.
n ~ present step identification', , ~he symbol en-l in on-line operation is al~ays utilized to refer to the previouS position at the end of the last step data Dn 1 The , .
- s~ ~ol en 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 ' i ~
'on-line computation and control unit 18 regardless of whether the ; ¦`
'step is a CP (ACC - 0) or CP (ACC ~ 0) mode step.
:
- . . ' '''' ~ .
::
_99_ (' ~119Z79 i' I
TABI,E III - INSTRUCTION SET
(Symbology) . . I
SYI~'~BOLS
R Register ~l Register ~2 (Temporary Reg.) OUTPUT enable T* ~egister ~2 (Temporary Reg.) ouTPuT~disable ~n RAI~ Address COO ;n~w position data (l, 2, 3) ~n-l ~01 ;previous position data ~n OlO ;new velocity command ~ end point ~n-I Oll ;preYioUs velocity command @ end poin.
~m _ - - lOO ;updated position command ~m lOl ;updated Yelocity command . llO ;position difference SCRATCH lll ;scratch pad use N ~ of Inter~olation intervals per current step ~externa . 'progra~led) ~* Interp. count (Input data3 ~v!~l/Tr) Velocity constant (externally programmed) in binary 128 form ~c ~ of ConYeyor LSD change in the step --~ X Multiplier X input Y ~ultiplier Y ;nput Z M~ltiplier Z output D Data on DataBUS, EDn .( ) content of memory location, RAM, or Registers enclose~ -~
. parentheses . .
"Is transferred to"
f Addition ~ .
i.
Z79 (-. . , I
_ 2's comple~ent subtractidn .
* 11ultiplication ., Di~iSion . . _ RAM Addr. in HEX. -. Decimal Form .' . .
1~ (4 3 2 1) 4 is ~M select bit . ~ n ~ D Q
~n-l 9 1 0 0 1 - ~n A 1 0 1 0 n - l B ~ 0-1 1 ~m C 1 1 0 0 ~m D 1 1 0 1 . . ~--. ~ E 1 1 1 0 . SCRATCIl F 1 1 1 1 .. . ' -~ ' ;' '; . . ' , , . ~
.
: ' . ,,. . , ' .
' ,' ' ~. .
,::
.
.
-~01-TABLE IV - SAMPLE INSTR~CTION AND
CORRESPONDING OPERA~ION
Data Transfer Group Operation Mnemonic Descriptlon ~Y ~,R (R ~,tMn) .. data in RM location n is transfered to Reg. ~1.
~V ~,X (X) ~ tMnj data in RAM location n is transfered to X inpct - of ~PY.
MOY ~, T ~T ]~.(Mn) data in RhM location n is transfered to Reg. ~' with output disable mode MOV T,M (Mn)~ (T) data in Reg. ~2 is transfered to RAM location n.
Arith~st;.c GrouP
ZER0 X (X}~~0 set ZERO X input of multiplier ZERO T (T )~-0 , set ZERO in Reg. l2 with output disable mode.
ADD M,X tX)4-(~ ~ (R) Add R~M location to Reg, tl and store the result to X input of multiplier ADD M,T (T~-(M~ I (R) Add RAM location to Reg. ~l and store the result to Reg. ~2.
ADD M,T (T )~(M~-~ (R) Same as above but Reg. ~2 i5 in output disable mode SUB M,X (X)~-(M~ - (R) -. Subtract content of Reg. ~l from RAM location and -store the results into X input of multiplier.
SUB M,T (T)~-~M~ - ~R) Subtract content of Reg. ~l from R~ location and -. ~ ~ , store results into Reg. ~2.
SUB M,T (T )~ R) Same as ~bove but Reg. ~2 is in output disable mode.
DIV N (T~ ~ ~X1 * (Y) N Output from the multiplier is divided by N and . . storcd in Reg. ~2.
DIY 2~ ~T )~(X) ~ (Y) t 2N Output from the multiplier is divided by 2N an~
stored in Reg. l2 ' ,, . . . : .
Il0 Control~~roup IN M , (I.~ D data on d,ata bus is inputed to RA~ location n.
YIN EXl (Y)~-EXl data from External Device EXl on External ~us is in-, puted to Y input of multiplier.
YIN EX2 ~Y)~-EX2 data from External Device EX2 on External Bus is in-. puted to Y inp,ut of multiplier.
OUT M D~ 'n) data m RAM location n is outputed to Data Bus 7~
TABLE IV
OUT ZERO D~O ZERO i5 outputed to Data Bus .. NOP ' NO Operation NOPT . No Operation but Reg ~2 output is enable' Double Operation Instructions IADD M,X Combination of Input instruction and~
' . arithmetic instruction ' t ~ -IADD M,T
ISUB M,X . ' .,T
I~ERO M,X
IZERO M,T
IPASS M,X
IPASS M,T
TADD M,X Combination of moYe 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
~: : . ' .
.
. ~
, ~ ,, .. ' . . .- ' ' ., .
', . . .
( O = le C e 1~ ~ ;~ O C C ~ C I 3 3 3 I D ~ 3 2 2 3* 3 3 3l ~ 3 ~ X ~ 3 3 3 !
I,............................................ I
t t It t t t t I ~ x t t t t t t t t t o . . . ~ * ~ + + _ .-s . . .' ,~ ,c ~ .~ . ~ o I ' ~ n ~
l X _ .
~ o I o -' _ o o o o" o o c~ o o o 1~ ~3 O O I ~ -- o O O O O O O O O o O O O O O I-- r i O O _ _ _ _ `_ o O O O O C: O- O O O 0 ' 0 _ ~ O O O O O _.'~ O 0 _ O O _ ~ 1 Q ~ ~-X~ ~
_ _ _ _ - 3`
o o o o o o o o o- o ~ o o 1 o o o o o o o -- _ o o o o o o o o o o o -- i o rO
o o o o o o o o o o o o o o o o o o _ -o :t~ t~
_ O O O O O O O - O, O - O O O _ O O O ~D~
_ _ _, .__ _ ~ ~3 . o o o o _ _ _ _ o _ _ o _ o o _ o o O~x! o _ o _ _ _ o_o _ _ _ o o o o o o ~ ~ ~1~!
~ o _ _ _ o o o o o _ _ _ o o o _ _ o o~x3 o _ o o o o o o o o o o o o o -' o .o o X~
_ _. ~ ~
, _ _ o o o o _ _ _ _ _ _ _ _ _ - - - xla~.
- 3 3 _ O O O O 3 5 3 3 3 3 O O 3 3 3 3 XlP O
:~ 3 3 _ O O ~ O 3 3 ~ 3 3 3 O O 3 3 3 3 x r~ o : 3 3 O O O O O 3 3 3 2 3 - O O 3 3 3 3 ~~ 1-.. , .. _. _ ~ . ~ t~ I
o ~ 5 1~ ~ o ~ o. o 0~ ~ c~' . ~ ~ I _ ~_ . ~o ~ 1~ ~3 ' 1~ 13 13 ,3I~3;I~ 13 ~ l-3l3'3!3 ~
.. ,. ..... .
- 10~-3~79 z 2 1 -t I I _t ~ ~- - -t -t ~-t -t ~ ~ I 1 3 O O ~ ~ ~ 'D 'O r~l ~ ~ ~ ~ Vl ~ ~ t- C
~ ~ :~ rr~ ~ ~ r-~ c C O O C C O O _t ~ ..
_t ~ 2. ~ v~ ~ ~ w w o v ~ c~ o o 3 ~ -o--o - ~vr ~ O O 3 3 3 3 3 _ 3 3 ~ a 3 3 3 3 3 3.... ~. , __~, . ~ ~ . .~ . . _ x _~ x ~ x _I x t x ~ x _~ ~ _~ x o n _I l _ l l ._ ~ 2 ~ ~ ~ ~ ~_ ~_ ~- ~ O
o o~ 3 3 3 3 3 :3: 3 3 3 3 ~ 3 3 3 t ,_ _ _ _, _ _ _ _ _ _ _ _ _ _ ~:, _ I o ~o o t t t. t t t t t t t t I t t t t .
_ o o o v ~' ~ ~ ~ 1 0 o o o o ., ~ ~ ~ .
., _ _ - _ . _ _ ~ i~ _ ~,_ .
x ~ x ~ _ ~ x ~ x _, _~ _ ~ _ ~ ~ ~ * _ * _ DO O ~ X ~ X _ ~ * t -~ x -( x ~-- t ~- t ~2 2 _ ~ _ t --_ o _ _ _ ._ t ^ t ^ ~
., t t t ^ 3 f t t t t ~ 3 ~ . _ o o 3 --o ~. ~ ~ ~ 3 --3 -- o w 3 _ 3 3 3 3 _ .~. _ + . a c ~~_,. .___., _ . ~ _ _ _ ~ _ + ~ ..
1 ' ;" - ^~ ;7 ;" , ;2~ _, ..
., l ,- .~ x ~3 o o o o o o o o o j o o o o o . o o o o _ I t~t o o o o o o c~ O ol,o,o o o o ulx t o o o o o o o o o ~ o o o o o o o o O `x o o _ o ~ o ~ o - I O _ o ~ o ~ o ~- o-- w ' .
1- . x 'g o o o o l ~ - ' ~ o o o ~x ~
o o o o o I'`-- 1 - o o ~x t~
o ~o o o o o o o o l.o o o o l o o o o o -o ~-_ o _ _ _ o o o' ol- _ _ -lo o o o _ xl~
l ~ J
o o o _ o ~ ~ 1- - I - - o _ CD
o o _ o o. _, ,_, ,o o_l~ 1 ~ ~ ~ o o x o o _ o o _ _ o olo ~ -`1 - _ o I x o o _ _ _ ~ ~ ~ ~ 1- - - - ' - - - _ o I x _ l l l l O O _ _ _ _ _ _ I _ _ ~ _ _ j _ _ I _ ~ I D I
o o ~, 3 3 3 3 3 -;3'313 313 ~13. 3 o I x . O 13 3 3 3 3 3 313 313 313 313 3 O I x o 0 13 3 3 3 3 - 3 13 `3 13 313 3 13 3 o I x I ~ : I I ~v;
o o I-- o ~ o _ I o _ I o _ Io _ I o ~ I o ~ lo 1~
- I- - - 1 ~ 1 1 ~
3 l3 11~3 ~3J ~ 3D 1~ 1~3. 13 !l3' 13W'II3 I~n 13 ~3 ~ 5 ~ ~
- lOS-TABLE VI
TOP MODE - TEACH - I~ITIALIZE
_ I .. .
ADDRES5 ¦¦ PIR~ 1 PR~/ ~ INSTRUCTIOII COI~I~,ENT5 00I 00 i 00 NOP _ .
0100 00 ~IOP , .
02I 00 00 IIOP ~ .
03! ~P
04 ', 00 00 ~OP . .
0~ 00 00 NOP .
07 , 00 00 NOP .
_ _ .
09 . 00 ~ .18 111, On write Encoder into RAM
OA¦ 00 88 ZERO, T~ Set ZERO in Temp. (dis~le) OB! ol oo NOP T SEND OUT (ACCL = O) OCi 01 . 00 IIOP T - .
OD . ~ 01 00 NOP T ~
OE ; 1. 01 00 NOP T SEND OUT (~EL = O) . . _ ..
lo! oo oo NOP
)1 ¦ 00 00 - NOP .
12 00 00 NOP . .
14 00 00 NOP .
1501 E8 OUT, On One~l into Te~p.
1601 00 i~OP T
17. 01 00 NOP ~ S~ND OUT (POS ENCODER) ;
7~ ( (, .
TABLE VI (cont ) _ ., . . : , TOP .
I! I _ ADDRESS ¦ PROII 1 PROM 2 1 INSTRUCTION COllMEllTS
_ _. ~. .
1~ , 00 00 ~IOP .
1 9 ' 00 00 t~OP ~ ~, lA 1 00 OO NOP .
13 I O0 OO NOP . ..
lC 1 00 OO NOP . .
lD ¦¦ 00OO NOP .
lE ¦1 O0' OO NOP . .
lF ¦1 00OO NOP .
_ . ., T EbC Jt ADDRESS ,¦ PROM 1 ¦ PROM 2 ~ sTRucTIoN COMMENTS
. 20 1 O0 . O0 . NOP
. . 21 . O0 OO NOP .
. 22 O0 OO NOP . ..
23 00 OO NOP . .
24 00 OO NOP . . . . ...... .
. 25 OO OO NOP . .
: , 26 O0 OO NOP . .
27 O0 OO. NOP _ . 28 ¦ O0 OO NOP . .
. 29 00 OO NOP .
2A. 00 88 ZERO, T~ Set ZdRisail TemP~ (outpu~
2B 01 : OO NOP, T SEND OUT (ACCL = 0) ~9Z79 TABLE VI (cont ) TEAC~I MODE
_ ~ . '~, ADDRESS li PROM 1 PROM 2 INSTRUCTlON COMMENTS
_ __ ! __ ___ . .
2C I Ol OO .I~OP T _ 2E Ol OO NOP T SEND OUT (VEL = ~) 2F ¦ 01 OO N OP T _ 30 OO OO ~IOP
31 l~ OO OO . NOP . `
32 -¦1 OO OO NOP
33. I~i OO OO . ~iOP
34 '¦ N0.P
i Ol . E8 O~T en ~ransfer e to Temp.
36 ~ 01 . . 00 , NOP T SEND OUT ( P0S - enew) 37 1 Ol OO NOP T
_ ~
38 1~ ~P .
39.- 11 OO OO ~IOP. .
3A . - OO 00 . NOP . .
3B OO OO .. NOP . .. .-3C- OO OONOP .-3D OO OONOP . .
3E OO OONOP . .
',~, '' __ _ _____ _ ~1~9279 TABLE VI ~cont ) PTP or ~TPc MODE
. , . bDDRESS .¦ PROM 1 PROIl 2 ¦ IIISTRUCTI NL COMMENTS .
40OO Oo NOP ¦ _ , 41I OO OO NOP ¦ .
42I OO 18 IN, ~n ~ write data into ~neW
43i OO OO I NOP
44 1 ! NOP ~
4 5¦ OO OO NOP ¦ .
46, OO OO NOP
47, OO OO NOP ¦
48j~ OO OO NQP
49jl OO , OO NOP .
4A¦' 88ZERO, T* Set ZERO in Temp. ( disable) 4Bji Ol OO NOP T SEND OUT (ACCL = O) .
4Ci' 01 . OO NOP T . . .
4D¦i OO NOP ~ .
4E~¦. Ol Oo NOP T SEND OUT (VEL = O) 4Fl~j Ol I . OO NOP T . .
.
50~¦ Ol ¦ 18. MC~,T,~n-1 Store O into ~ old 51.~ OO OONOP .
52~ 00 OONOP . ' ~ :
53j OO~ OoNOP
54I OO OoNOP . .
S~¦ Ol E8OUT, ~n ~new into Temp.
56Ol OONOP T SEND OUT (POS = ~ne~) 57L Ol I OONOP T .
--109--, 1~9~79 (' TA~LE VI (cont ) _ _ ., .
P~P o- PTPC .
.1 ~ I --1-ADDRESS PR01~ 1 PROM 2 I NSTRUCT I ON I COllMENTS
l .
58 00 OO . l~OP
~9 00 00 .~OP
5A . OO OO NOP
SB ¦¦ O1 OO NOp T . .
. . 5C ! oi ,9 . MOY,T.~n-1 Store ~new into ~old . SD j~ 00 . OO NOP
5E OO OO NOP .
. . _ __ ' In = n CASE
1l 00 ~OO I~OP
61 l O0 OO ~Oi 62 . OO OO NOP . . .
63 00 OO - ~lOP
64 00 OO NOP . .
.00 OO . NOP _ . ~ . .
67 OO OO NOP __ 68 O0 OO NOP .
69 OO .OO NOP
6B j OO OO . NOP.
6C ¦ 00 OO ¦ NOP _ . -- 110- . ' ~927~ ( TA~3LE VI tcont) __ -~~ n case !
~1 l . ... .
ADURESS ¦~ PP~OM 1 ¦ ~ROM 2 INSTRUCTION ~ COMMENTS
6D OO OO NOP . .
6E OO OO ~ NOP .
6F OO OO NOP ~ ..
_ _ ., OO OO NOP I .
71 OO , OO NOP .
72 OO OO t~OP .
73 OO OO ~OP
74 OO OO NOP .
76 ¦ OO OO NOP . ;
76¦¦ OO ~ OO NOP .
77 ! oo ~oP
78 ¦ OO OO NOP .
. 7~ OO . OO NOP . .
7A OO OO NOP . . I.
- 7B. .Ot E8 OUT 9n ~new ;nto Temp. .
: 7C .Ol 19 MOY,T,~n-l Transfer to RAM ~ old . 7D Ol EA OUT, ~ 9new into Temp. .
7E Ol lB MOV,T,~n-l Transfer to RAM ~ old .
7F OO OO NOP . .
, = =_ .
,., . .' .. , .
. . . .. ' . .
. . ,. ' ' . .
__ , _ -111-- , TABLE VI (cont) CP (ACC=O ) M~de ADDRESS l PROt~ 1 I PROI~ 2 INSTRUCTION COMMENTS
. ~. . . I ~
02 09 MOY,~-l,R read 901d from RAM to Rt~ ~1 81 EO 60 YlN, Xv Set K v into MPY
82 00 18 IN. 9n ~Irite data into RAM 9ne~
83 j 01 C8sue ,~,T Get ~9 into Temp.
84 i 01 lEMOV T, ~ Temp ~9 (RAM) ¦ 10 6E.MOV ~9,X I ba into X
86 3C 80DIV 2 tl 87 . 01 lA ! MOV,T,~n Transfer Temp to ~new 88 I oo oo ~ICP
89 I 00 ' 00 ~IOP
8A ¦ 00 , 88ZERO,T*
8B 01 00 NOP T SEND OUT (ACCL = O) 8c ol oo NOP T -- .
8D 01 EAOUT,~n 6et ~new on BUS
8 01 OQ NOP T SEND YEL ~ ~new 8F 00 00 NOP _ A4 60YIN, m* 6et m* into llultiplier 91 34 80DIV, N ~x11/N into Temp = 9m 92 01 CfTADD,Scratch,T (~9xM/Il) t Bold ~ T .
93 Oi lCMOY T, ~m T}9m = (~9 x m/n) t ~old 94 00 00 t~OP .
g5 Dl 00 NOP T Enable Temp.
96 01 . 00IIOP ~ SEND POS = om 97 00.' 00 ~lOP . _ ~ 9~7~ ( TABLE VI (cont ) _ .
'' '' ', ~. ,, ' ~ _ ..
ADD2ESS !¦ PROM 1 PROM 2 INSTRUCTION COMMENTS
98 ~ 00 00 NOP . ..
99 ¦ 00 00 .. NOP
9A I 00 . 00 ,. NOP
: se ~; oc oo t~OP :
9C " 00 00 NOP .9D jl 00 . 00 NOP . .
-9E il NOP ..
9F ',! t~oP
_ ' __ _ _ __ ~ :.
. ~ CP (ACC~O). Mode .
l . ' ~ _ ., .ADDRESS l PROM 1 PROM 2 INSTRUCTION COllMENTS
i _ AO 02 09MOY,en-1,R Read Bo1d from RAM into .
Al . EO 60 YIN, Xv Set Xv into MPY
A2 00 18 IN,~n ~lrite ~new into RAM
A3 10 48SU8,~n,X Get ~9 into X
A4 34. :. 80 DIV N ~9x ~KV/N into Te~p~ .
AS 02 OB-MOY,9n-1,R Move 901d into Reg ~1 .
A6 . Ol DF TSUB,Scratch,T _xene~l/N - eo1d into Te~p A7 1J SA -TSUB,e~,X llrite into ~new,-~n1d~Q91ntoX .
. _ . _ . - . .
A8 . ¦ 00 00 NOP . . .
A9 EO 60 YIN,-~ ~ Set ~v into l~PY .
AA 3C . 80 DIY, 2N Tem~ ~new = ~x Rv .
AS . A5 60 YlN,mt,T Set m*,SEND ACCL = Bnew , . ;
-~13- 1 , lll9Z79 TABLE VI (cont?
_ ' .
. , ' . .~' ~ _ . ADDRESS PROM 1 ¦ PROM 2 , ItlSTRUCTlON ¦ COMIlENTS _ AC 34 80 I DIV, H Get ~6 x m*/N to Temp.
. AO . 01 8F ¦TADD ,Scratch,T ~9xm/tJ)+~old into Temp.
AE ¦ 11 3D TADD ,bm,x Store bm into RAM, ~m ~- 15 . 901d~ x SEtlD VEL = bm AF A4 60 YIN m* Set m* ) BO 34 80 DlV N(Hardware) (~m+bold)xm*/64~Temp;
Bl 20 6E YIN, ~9c ~c into Y
.. B2 11 7F TPASS ,ScratchX Temp ~ X
B3 02 09 MOV,~n-l,R MoYe 901d to Reg rl :~
B4!3C 80 DIY 2tl (em+bOld) x m~/64 x ~ec/2~
B5 01 BF TADD ,Scratch,T i(em+bold) x m/64 x ~9c/2~ +
1 9old ~ Temp B6 01 lCMOY, T, 9m SEND POS and Store in 9m B7 00 00 NOP ~ _ _~
B8 00 00 NOP ; ~.
B9 00 00 NOP . .
- . BA 00 00.tlOP . ..
. BB 00 00 NOP . . . .
BC 00 00 tlOP :' BD 00 00 NOP . :
BF 00 00 ¦ NOP
. - - -- ~ :
.. _ , .. -.....
.-'.
: ..
. .
. . .
.
27~
f ~ `he following integrated circuit devices have been found suitable in a specific implementation of the Arithmetic Unit 518 and the Processor Program Memory 516 and are given by way of example only and should nct be interpreted in a limi~ing sense:
DEVICE TYPE No. of Devices MANUFACTURER
AL~ 672 74181 Ifour) Texas Instruments Register ~1 675 7475 ~four) Texas Instruments Multiplier 668 MPY-16 (one) TRW
Position Scalar 674 8243 (five) Signetics iplcxer 676 74157 (four) Texas Instruments Reqister ,,-2 682 8212 (two) Intel Random Access Data Memory 666 N~2S09 (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 in~.ention.
What is claimed as new and desired to be secured by Iettexs Pa~ent of the United Stat~s is:
' ' .. ~
93 Oi lCMOY T, ~m T}9m = (~9 x m/n) t ~old 94 00 00 t~OP .
g5 Dl 00 NOP T Enable Temp.
96 01 . 00IIOP ~ SEND POS = om 97 00.' 00 ~lOP . _ ~ 9~7~ ( TABLE VI (cont ) _ .
'' '' ', ~. ,, ' ~ _ ..
ADD2ESS !¦ PROM 1 PROM 2 INSTRUCTION COMMENTS
98 ~ 00 00 NOP . ..
99 ¦ 00 00 .. NOP
9A I 00 . 00 ,. NOP
: se ~; oc oo t~OP :
9C " 00 00 NOP .9D jl 00 . 00 NOP . .
-9E il NOP ..
9F ',! t~oP
_ ' __ _ _ __ ~ :.
. ~ CP (ACC~O). Mode .
l . ' ~ _ ., .ADDRESS l PROM 1 PROM 2 INSTRUCTION COllMENTS
i _ AO 02 09MOY,en-1,R Read Bo1d from RAM into .
Al . EO 60 YIN, Xv Set Xv into MPY
A2 00 18 IN,~n ~lrite ~new into RAM
A3 10 48SU8,~n,X Get ~9 into X
A4 34. :. 80 DIV N ~9x ~KV/N into Te~p~ .
AS 02 OB-MOY,9n-1,R Move 901d into Reg ~1 .
A6 . Ol DF TSUB,Scratch,T _xene~l/N - eo1d into Te~p A7 1J SA -TSUB,e~,X llrite into ~new,-~n1d~Q91ntoX .
. _ . _ . - . .
A8 . ¦ 00 00 NOP . . .
A9 EO 60 YIN,-~ ~ Set ~v into l~PY .
AA 3C . 80 DIY, 2N Tem~ ~new = ~x Rv .
AS . A5 60 YlN,mt,T Set m*,SEND ACCL = Bnew , . ;
-~13- 1 , lll9Z79 TABLE VI (cont?
_ ' .
. , ' . .~' ~ _ . ADDRESS PROM 1 ¦ PROM 2 , ItlSTRUCTlON ¦ COMIlENTS _ AC 34 80 I DIV, H Get ~6 x m*/N to Temp.
. AO . 01 8F ¦TADD ,Scratch,T ~9xm/tJ)+~old into Temp.
AE ¦ 11 3D TADD ,bm,x Store bm into RAM, ~m ~- 15 . 901d~ x SEtlD VEL = bm AF A4 60 YIN m* Set m* ) BO 34 80 DlV N(Hardware) (~m+bold)xm*/64~Temp;
Bl 20 6E YIN, ~9c ~c into Y
.. B2 11 7F TPASS ,ScratchX Temp ~ X
B3 02 09 MOV,~n-l,R MoYe 901d to Reg rl :~
B4!3C 80 DIY 2tl (em+bOld) x m~/64 x ~ec/2~
B5 01 BF TADD ,Scratch,T i(em+bold) x m/64 x ~9c/2~ +
1 9old ~ Temp B6 01 lCMOY, T, 9m SEND POS and Store in 9m B7 00 00 NOP ~ _ _~
B8 00 00 NOP ; ~.
B9 00 00 NOP . .
- . BA 00 00.tlOP . ..
. BB 00 00 NOP . . . .
BC 00 00 tlOP :' BD 00 00 NOP . :
BF 00 00 ¦ NOP
. - - -- ~ :
.. _ , .. -.....
.-'.
: ..
. .
. . .
.
27~
f ~ `he following integrated circuit devices have been found suitable in a specific implementation of the Arithmetic Unit 518 and the Processor Program Memory 516 and are given by way of example only and should nct be interpreted in a limi~ing sense:
DEVICE TYPE No. of Devices MANUFACTURER
AL~ 672 74181 Ifour) Texas Instruments Register ~1 675 7475 ~four) Texas Instruments Multiplier 668 MPY-16 (one) TRW
Position Scalar 674 8243 (five) Signetics iplcxer 676 74157 (four) Texas Instruments Reqister ,,-2 682 8212 (two) Intel Random Access Data Memory 666 N~2S09 (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 in~.ention.
What is claimed as new and desired to be secured by Iettexs Pa~ent of the United Stat~s is:
' ' .. ~
Claims (48)
1. A programmable manipulator provided with a manip-ulator 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 work-piece 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 a 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 co-relation with a moving workpiece during a playback cycle.
3. The combination of claim 2 further comprising work-piece 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 compuation means; and means for generating said predetermined series of control words in a predetermined sequence.
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 compuation 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 pre-determined 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 co???d 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 pre-determined 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 output.
16. The combination of claim 1, which includes means for reading out said stored command signals in a pre-determined 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 pre-determined number of sequential control signals represent the projected dynamic manipulator arm movement between the positions rep?????ted 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.
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 pre-determined 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 means for 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 sub-sequent playback cycle, and means for adjusting said arm moving means for variations in the actual velocity of said moving work-piece from said predetermined velocity during said subsequent playback cycle.
26. 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 en-coder means for developing position signals corresponding to workpiece move-ment along said reference axis, said movement controlling means including means for dividing the resultant difference between successive stored com-mand 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 multi-plied increment products with the preceding stored command signal to pro-duce 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 move-ment for controlling the generation of successive artificial command signals.
29. The combination of claim 26 further comprising workpiece reference axis encoder means for developing position signals corresponding to workpiece movement alond said reference axis, said stored command signal 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 pre-determined 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 or multiplied differenee 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.
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 or multiplied differenee 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 of 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 correspond-ing to different angular positions or 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 or 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.
means for converting said position signals correspond-ing to different angular positions or 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 or 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 T1-2 for the arm to traverse the distance between successive taught points P1s and P2s on the stationary workpiece at a projected arm velocity of V, a projectec arm acceleration +a and a projected arm deceleration -a, and means for modifying the Cartesian coordinates of P2S by a quantity which is defined by a first factor equal to the accumulated program position,? D1, up to program step 1 corresponding to P1s 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 P1s and P2s in terms of a number of basic displacement units of workpiece position.
means for determining the projected time interval T1-2 for the arm to traverse the distance between successive taught points P1s and P2s on the stationary workpiece at a projected arm velocity of V, a projectec arm acceleration +a and a projected arm deceleration -a, and means for modifying the Cartesian coordinates of P2S by a quantity which is defined by a first factor equal to the accumulated program position,? D1, up to program step 1 corresponding to P1s 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 P1s and P2s 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 VM to the velocity Vc; and means for calculating TM, the time for the manipulator arm to move the distance,.DELTA. S1-2-?VM(T1 + T2), at the velocity VM, where .DELTA. S1-2 is the distance between the points P1s and P2s.
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 VM to the velocity Vc; and means for calculating TM, the time for the manipulator arm to move the distance,.DELTA. S1-2-?VM(T1 + T2), at the velocity VM, where .DELTA. S1-2 is the distance between the points P1s 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 worXpiece 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 T.THETA.n for each of the manipulator axes, where T.THETA.n is the minimum projected time interval for each axis of the manipulator to accomplish the movement between P1s and P2s; and means for comparing the T .THETA.n values for the manipulator axes and determining the greatest T.THETA.n to define T1-2.
means for calculating T.THETA.n for each of the manipulator axes, where T.THETA.n is the minimum projected time interval for each axis of the manipulator to accomplish the movement between P1s and P2s; and means for comparing the T .THETA.n values for the manipulator axes and determining the greatest T.THETA.n 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 cor-responding 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 pre-determined 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 per-form a series of operations on a wcrkpiece 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 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.
moving said arm to different positions relative 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 the initial teaching operation to the approximately position corresponding to the position of the workpiece accounting for projected work-piece 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 of 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.
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 of 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 predeter-mined 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.
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 manipu-lator arm including a work head for selective contact with said workpiece, means for calculating signals representing a pre-determined 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 play-back 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
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
Claim 48 Continued 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.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US89811278A | 1978-04-20 | 1978-04-20 | |
US898,112 | 1978-04-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1119279A true CA1119279A (en) | 1982-03-02 |
Family
ID=25408963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000323356A Expired CA1119279A (en) | 1978-04-20 | 1979-03-13 | 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) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4420812A (en) * | 1979-09-14 | 1983-12-13 | Tokico, Ltd. | Teaching- playback robot |
IT1144709B (en) * | 1981-05-15 | 1986-10-29 | Dea Spa | DIMENSIONAL MEASUREMENT SYSTEM SERVED BY A MULTIPLE OF OPERATING ARMS AND CONTROLLED BY A CALCULATOR SYSTEM |
IT1144707B (en) * | 1981-05-15 | 1986-10-29 | Dea Spa | OPERATING ARM UNIT CONTROLLED BY A COMPUTER SYSTEM |
IT1144708B (en) * | 1981-05-15 | 1986-10-29 | Dea Spa | INDUSTRIAL PRODUCTION SYSTEM SERVED BY A PLURALITY OF OPERATING ARMS AND CONTROLLED BY A CALCULATOR SYSTEM |
KR890002438B1 (en) * | 1981-09-22 | 1989-07-03 | 구보다 미노루 | Control apparatus and method for industrial robot |
JPS5858607A (en) * | 1981-10-05 | 1983-04-07 | Sankyo Seiki Mfg Co Ltd | Point measuring system of preset type robot |
JPS58143981A (en) * | 1982-02-19 | 1983-08-26 | 株式会社日立製作所 | Method of controlling industrial robot |
CA1184273A (en) * | 1982-09-23 | 1985-03-19 | Kazuyoshi Yasukawa | Robot control apparatus |
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 |
JP2512099B2 (en) * | 1988-08-24 | 1996-07-03 | 松下電器産業株式会社 | Robot motion teaching method and control device |
US5079491A (en) * | 1989-05-23 | 1992-01-07 | Honda Giken Kogyo Kabushiki Kaisha | Robot control system |
US7627394B2 (en) | 2005-12-20 | 2009-12-01 | Kuka Roboter Gmbh | Robot trajectory control including emergency evacuation path system and method |
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
Also Published As
Publication number | Publication date |
---|---|
GB2027938A (en) | 1980-02-27 |
GB2027938B (en) | 1982-10-06 |
AU4530079A (en) | 1979-10-25 |
AU520285B2 (en) | 1982-01-21 |
JPS54141972A (en) | 1979-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1119279A (en) | Off-line teach assist apparatus and on-line control apparatus | |
US4338672A (en) | Off-line teach assist apparatus and on-line control apparatus | |
US4166543A (en) | Method and means for controlling an industrial robot | |
CA1091330A (en) | Computer assisted teaching arrangement for conveyor line operation | |
EP1901150B1 (en) | A method and device for avoiding collisions between an industrial robot and an object | |
EP0130570B1 (en) | Method and apparatus for controlling a robot hand along a predetermined path | |
EP0076498B1 (en) | A method controlling an arc welding torch of a welding robot | |
US4623971A (en) | Machine control with motor velocity constraint | |
JPS584377A (en) | Controller for articulated industrial robot | |
JPS59218513A (en) | Arc control method of industrial robot | |
KR880001647B1 (en) | Robot control apparatus | |
EP0268491A2 (en) | Multiaxis robot having improved motion control | |
JPH11347984A (en) | Robot control device | |
US5646493A (en) | Robot profile control method | |
Lippiello et al. | An open architecture for sensory feedback control of a dual‐arm industrial robotic cell | |
Tika et al. | Robot online task and trajectory planning using mixed-integer model predictive control | |
EP0483756B1 (en) | Robot controlling method and apparatus | |
Hazem et al. | Joint Control Implementation of 4-DOF Robotic Arm Using Robot Operating System | |
JPS62251901A (en) | Course controller for multiaxis robot | |
JPH0677910B2 (en) | Control method for industrial robot | |
JPS5858609A (en) | Locus interpolating method of industrial robot | |
JP3668821B2 (en) | Robot controller and robot control method | |
JPH0677210B2 (en) | Industrial robot having teaching data conversion function | |
JP2691591B2 (en) | Control system of force control robot | |
JPH04367373A (en) | Control method for welding robot |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MKEX | Expiry |