An Intelligent Force Controlled Robot H. van Brussel, J. Simons, J. Deschutter
- Submitted by J. Peters (1)
Based upon earlier work 1101 on adaDtiVe assembly using an active adaotable compliunt wrist, a universal active force control concept has been developed and implemented into a commercial industrial rohot;. It contains an off-line programming system with a set of conditional move-subroutines in rohot or real-world coordinates and further a six degrees of freedom force sensor with control hard- and software. Multi-degree of freedom compliant behaviour is obtained by special software routines. Several task algorithms for constant force contour tracking and automatic assembly are discussed and tllustrated with practical experiments.
INTRODUCTTON First generation industrial robots are finding widespread use in applications where the environment is completely structured and invariable. However, this latter requirement severely limits the application range of robots. Positioning of workpieces is mostly inaccurate, manufacturing tolerances make every assembly operation unique, etc. State feedback from the environment is required in order to cope with uncertainties. Vision systems abound plentiful in the laboratories for object recognition. feature extraction and even for visual servoing. Industrial application progresses rather slowly however. Severe fundamental problems remain to be solved such as large image processing times, focussing, recognition of three-dimensional objects, non-ideal industrial lighting conditions, etc. Of equal importance for increasing robot flexibility is force and tactile feedback. Force controlled robot systems can be based upon either passive or active accommodation. Accommodation is defined as the process in which the contact forces between the parts held by the manipulator and the environment modify their relative position or motion. In passive accamadatim systems the position correction is generated by the contact forces themselves while in active accommodation the forces are a source of information from which the position corrections are calculated. Passive systems are simple, easy to use and fast in operation. However they are special purpose tools with limited flexibility.
I COORDINATE TQANSFORM,
DESCRIPTION
Active force accommodation systems are much more flexible since their behaviour is determined by the way the force sensing loop is closed in the controller. Another major drawback of present day robots is their lack of programming flexibility. Especially when used as a component in a flexible manufacturing system the robot should be provided with off-line programming capabilities, preferably compatible with the programming languages used in the other components of the system. In this paper, a next-generation off-line programmable force-controlled robot is described, built around an off-the-shelf first generation industrial robot (Cincinnati T3-robot). A UNIVERSAL FORCE-CONTROLLED ROBOT WITH ACTIVE ADAPTABLE COMPLIANCE Fig.1 illustrates the structure of the developed offline programmable force controlled robot. The original first-generation robot (Cincinnati Milacron T3-robot) is schematically represented within the dotted line. Force feedback An additional force-feedback loop has been provided
using a six-component force sensor mounted between gripper and robot-arm. Force sensor For the measurement of the forces and torques acting
P O S I T ION
1
ROBOT ARM
CONTROL ACGOR I THM
'
I I
FORCE SENSOR
--
COORDlNATE TRANSFORM
1
TASK
COMPLIANCE
C
I
ALGORITHM TRACK
FIG.l
General structure of an off-line proRrammable
Annals of the CIRP Vol. 31/1/1982
force-controlled robot.
391
in the interaction zone between robot and environment, a six-component force sensor was developed. I t consists of two rigid rings connected by four flexural strips. The matrix relating the stx strain gauge bridge output voltages with the six force components is diagonal so that consequent arithmetical processing of I.he signals for decoupling the force components is not. required. The six low-level output voltages of the strain-gauge bridges are multiplexed, amplified in a two-stage instrumentation amplifier and converted into 12-bit digital words. Tn order to limit the amount of wire connections (and thus the amount of sliprings when continuous rotation of the gripper is required) between the sensor and the robot control, the force information is transmitted serially to the robot control. Upon arrival there, it is converted again into 12-bit parallel words and stored into a 6 x 12 hit RAM-memory which can be read at any moment by the control computer. Fig.2 illustrates the sensor and its data proceasing circuitry. Force loop closure The interaction forces YH obtained in the gripper coordinate system I H ] are transformed into position commands specified in the fixed world coordinatc system IW]: (1) H
where [CHI is a compliance matrix relating the measured hand fgrces FH to the desired position commands XH expressed in the hand coordinate system. is the transformation mat.rix from hand coordinates to real world coordinates. The ultimate positioning commands 4 of the robot, expressed in the Pobot coordinate system are obtained from Xw as follows :
Tn this configuration, the robot can be used for performing assembly tasks like peg-into hole insertions. As well-known from assembly research (1.21 passive o r active compliance is indispensable for succesfully performing close-fit assembly tasks. The compliance as described here is a software realization of the active adaptable compliant wrlst (AACW) as described in ref.[31. The AACW acts as a set of software adjustable physical springs thanks to the reversible nature of the servodrives. Therefore, excessive position correction actions due to a too coarse resolution of the position encoders are automatically compensated for by the physical spring action. This is the base for succesful assembly "stategies" !31. In the software compliance, as described here, the spring behaviour is generated artificially, i.e. a measured force is translated into a displacement proportional to the force. Due to the finite position resolution the behaviour is only macroscopically spinglike. Within one resolution the system acts like a positioning loop and the resulting spring-characteristic has the form of a stair-case. In order to avoid limit cycles upon contact between robot and environment, a passive compliance should be present outside the force feedback loop. This compliance (which can be the inherent force sensor Compliance) should avoid excessive force changes within one resolution; thus its value, although not critical, depends on the positionicg resolution of the robot. Task algorithm loop closure A higher level feedback loop exists at the task level where motion commands are generated required to perform a certaln task. Examples are : peg-in-hole insertion algorithms. constant force contour tracking for deburring, polishing or arc welding. Feedback quantities at this level are positions of robot joints and/or forces. This feedback loop can work together with the compliance loop as will he illustrated in the application examples. OFF-LINE PROGRAMMABILITY
where [Ti] is the transformation matrix from fixed world coordinates to robot coordinates. This force feedback loop allows the realization of an arbitrary multi-degree-of-freedom adaptive compliant behaviour by programming an appropriate compliance matrix ICE].
. -
s.n.0.
I1 81 f
The classical method of on-llne programming by teaching becomes very tedious for complex tasks, but also does not allow for tasks in which the decision about the actual path of the manipulator arm is made at run time. In this part we describe the design and implementation of an off-line programming system for controlling a compliant force-controlled robot. Hierarchy of languages and choice of language group The greater part of research in off-line robot programming languages has been directed towards the development of specific assembly languages. Off-line assembly languages belong to one of four levels 141 : the actuator level, the manipulator level, the object level and the task level. Programs at the first level are desdribed in terms of joint coordinates. which turns out to be very impractical. Programs of the second level are written in terms of displacements of the manlpulator end-effector, expressed in fixed world coordinates. A transformation from world coordinates to joint coordinates is provided by the system. Object level programs consist of assembly operations performed on the objects themselves, rather than specified manipulator movements. Finally, task level programming systems generate a large number of low level instructions starting from general macro-instructions using data-bases and thereby generating collision free object trajectories. Another classification of off-line programming languages can be made as follows : Languages with a new syntax (AL, VAL, LM, AUTOPASS, ) . They have the advantage that syntax and semantics can be optimally directed towards the description of robot tasks. However, they require a lot of time and effort for constructing compilers and interpreters.
...
Languages based on NC-languages (ROBEX). Extending an existing CNC-language by adding elements for describing robot movements, environment dimensions, sensory interaction, etc. is attractive because it can lead to completely computer controlled machining cells programmed in the same way. However NC-languages do not have the suitable structure for flexible sensory interaction. Languages based on existing computer languages. A n existing computer language (FORTRAN, PASCAL, LISP. ) is extended by adding a library of subroutines for controlling the manipulator and for interaction with sensors. In addition the programmer can use the decision logic and arithmetic data manipulation capabilities provided by the language considered. This method leads to a system which is not optimal from any point of view, but which is
...
FIG.2
Six-component force sensor with data-processing ci-cuitry.
almost unlimited in flexibility and ext,ensJon capabilities. Because of i t s flexibility the third option was chosen for this project. Fortran was selected as the mother language. In its present form the resulting language cannot be compared to other assembly languages. However, as will be shown further, it allows a great deal of advanced applications and i t can be readily applied by everyone familiar with Fortran. It is further not restriceed to assembly operations. Referring back to the hierarchy of programming levels, the developed library of subroutines consists mainly of manipulator and sensor level routines but includes also task level rout.ines (contour tracking, insertion.
... ).
On-line trajectory generation and coordinate transformation Most programming systems generate trajectories in cartesian fixed-world coordinates. On-line generation of the robot trajectory implies on-line coordinate transformatioc IT91 from world coordinates Rw to joint coordinates q as shown in fig.1. A second transformation ] : T I from hand coordinates XH to world coordinates xw is required for processing the force information. is undoubtedly the most The first transformation I T : ] standpoint. The general demanding from problem consists of calculating q from a given Xw and the geometric relation : = F(<) (3) Explicitation of 4 from equation ( 3 ) is generally not possible. Several solutions are based on linearization or iterative solution of equation ( 3 ) . A first order approximation of ( 3 ) is given by :
computations\
-
dXWi = J(<,)
.
dGi
(4)
is a Jacobian with elements Jk = 6Ttk/6ql. where J(&) and index i refers to the fact that discretized functions are considerd. Equation ( 4 ) is a linear algebraic set which can be solved for di.. The Jacobian J(qi) is known for a given configuration. Recursive solution for all values of i yields the complete trajectory 4. A comparative study of different methods, performed by the authors [ 5 1 revealed that the use of iterative methods I 6 1 for robots with more than three degrees of freedom becomes problematic. Linearization which leads to the so-called motion rate method 171 and incremental methods r 8 . 9 ) require a feedback loop in the interpolator to avoid cumulative errors, bringing about a major drawback. Some robot configurationspermit to solve the problem purely geometrically, based on special features in the sequence of the robot joints. (These features might be Included to this end by the robot designer). Every joint coordinate can then be calculated by an inverse calculation procedure starting from the manipulator end-effector. In our system this analytic-geometric method was chosen making use of the fact that for the Cincinnati robot joints 1 to 4 are in the same plane (fig.3). The world coordinates j7, are a seventuple (fig.3a). consisting of three Cartesian coordinates xt. yt, Zt expressing the positions of the tool center point, three Euler angles D, E, R expressing the tool orientation relative to the world frame, and finally the tool length TL. being the distance from the end point of the sixth link to the tool center point.
IJsing the tool length as a seventh coordinate is very practical for application directed programming; in many npplicat,ions the robot has to approach the workpiece in the direction of the tool (example: peg-into-hole problem; approach with gripper; adapting for tool length reduction because of wear in grinding). In this case one just changes the seventh coordinate while keeping the other constant. These seven coordinates are transformed into six joint angles (q) (flg.3b). Practical implementation of this routine demands computertechnical optimization in order to keep the execution time to a minimum. The choice of computer is also very critical: on a HPlOOOF computer the routine (programmed in Fortran) takes 2.7 msec; however on its older version, the HPlOOOE, i t takes 35 msec. Simplified and shorter transformation algorithms are used if the end effector i s to move in a vertical or horizontal plane. The second transformation, from XH to xw, consists of three consecutive rotations with rotation angles 0 , E . R and i s therefore straightforward and a lot less time consuming. Hardware considerations The complete robot-controller-computer setup is schematized in fig.4. Both the Acramatfc microcomputer, which is part of the s m d a r d Cincinnati robot system and the added HP1000E-minicomputer have access to the six servo controller boards. A special hardware module was built to assure the internal synchronisation. A switch allows to choose between the original on-line programming system with teach and play-back, fully governed by the Acramatic controller, and our own offline system governed by the HP-computer, the machine status still being monitored by the original Acramatic. This system is overdimensioned, but it lead in a very short time from an off-the-shelf commercially available configuration to a flexible off-line programmable system with full sensor interaction. It is the base of an optimal hierarchical multiprocessor controller which is under construction and which is the ultimate aim of this study. Sofware The library of subroutines consists of both FORTRAN and ASSEMRki routines, these latter for the more timecritical real-time functions. They consist of :
I,
FIG.3
d
Definition of world coordinate system (a) and joint coordinate system ( b ) for Cincinnati T3robot.
FIC.4
General setup of robot-controller-computer system.
393
-
Initialization routines (ASSEMBLER) Enables the interrupt communication system between robot and HP-computxr. From now on the communication subroutine SINT is called by interrupt every 5 ms; also the interpolation time Ti and the robot home position are specified. - Communicacion routine (ASSEM~LER) Service interrupt, (SINT) is called every 5 msec; it outputs the results of the motion routines to the robot by means of two communication buffers which arc used alternatively: the robot is reading the present data from one buffer, while the main program Is writing the next data into the other one. - Motion routines (FORTRAN) At present the user can choose between three routines : MOVQA (TT,q) with-TT the total time of the motion and q the destination point specified in joint coordinates. This is an instruction at the actuator level. MOVXA(TT,T[w) with xw the world coordinates of the destination point. No intermediate points are calculated between start and end points; the destination point is transformed to joint coordinates and interpolation takes place in the joint space, yielding a non-linear Cartesian path. MOVXI(TT,x,f) according to interpolation time Ti, linear interpolation points are calculated in Cartesian space and are transformed to joint coordinates. yielding an approximate linear path. (If the interpolation time Ti is greater than the sampling time T, = 5 ms. the communication routine spreads out the AG to be given in one interpolation interval over N sampling intervals such that NT, = Ti with N > 1 ) . The routines MOVXA and MOVXI are instructions at the manipulator level. Sensor reading routines (ASSEMBLER) *FORCE reads a six component force vector measured by a force sensor mounted on the robot wrist. VAMRA inputs the results of a hardware processing module calculating the center of gravlty, area and direction of the main axes of inertia of a PD-image supplied by a video-camera. - Coordinate transformation routines (FORTRAN) GCOTR (~w.4):general transformation from ~ t wto q. HCOTR (Xw.4): transformation from Xw to when keeping zt constant (horizontal plane). VCOTR (Xw,:): idem, but in a vertical plane. W HANWO : coordinate transformation TH from XH to
and its desired value. This algorithm gets into trouble when contact is lost. A search strategy has to he added for these cases. A critical point in this simple strategy i s the calculation of the direction of the contact force directly from the noisy force components measurement.s. The following strategy. which also generates control cycles consisting of two move commands, but now based on both position and force information, tries to cope with this problem. The first move command, hased upon position feedback, is defined by a vector with constant programmed length L and directed along the resulting direction of the previous control cycle. In the horizontal xy-plane the algorithm takes the following form : Ax'(n+l) = L . Ax(n) / L(n) (5) Ay'(n+l) = L . Ay(n) / L(n) where L is the programmed motion increment; L(n) is the length of the vector with components Ax(n) and Ay(n); Ax(n) = Ax'(n) + Ax"(n); Ay(n)-Ay'(n)+Ay"(n). the total motion steps executed durtng the n-th cycle. The second step of the cycle is based upon force feedback, and consists of motion steps Ax"(n+l) and Ay"(n+l) defined by : Ax"(n+l) = K (Fx(n+l)-Pcosa) + Kd(Fx(n+l)-Fx(n)) P (6) Ay"(n+l) = K (F (n+l)-Psina) + K (F (n+l)-F (n)) P Y d Y Y where K is the proportional servo constant KZ the derivative servo constant P the preprogrammed contact force (assumed to be perpendicular to the surface) a = arctg Fy(n+l)/F (n+l) specifies the directim of the contact force in the xy-plane. Fx(n+l), Fy(n+l), the present. farce component. values Fx(n), Fy(n), the force component values of the previous cycle. A flow chart of the resulting algorithm is shown in 5 (it represents the task algorithm block of fig.l), and fig.6 explains the idea of the strategy. Slight modifications of these algorithms are required in order to cope with the friction force or the machining forces during deburring or polishing. Extension to three dimensional tracking problems is under way and poses no fundamental difficulties.
MOVE AIDNO
PRMilwDlLD DIRECTION
Tf3
CAWUUTE
xw.
-
d
MOM: PBRPEWDICUUR TO CONTACT FORCE
OnR
&in
.av
r
Force feedback and task algorithms (FORTRAN) SPRNG ( c:) calculates compliant position correction in hand coordinates according to compliance matrix.!c TRACK stc, F. V) tracks-arbitrary contour from Xb to Xc with constant contact force F and speed V
UEAISUREIIENT CONTACT FORCE
now
CONTACT FORCE DIRECTION OVER AX". AI"
A.LMIC
+
(%,
Some of these routines are indicated at the appropriate places in fig.1. It is evident that some routines call others in their definition. Further, the routines can be easily combined to describe more complex tasks. Consider for instance, the command: move on a strai ht line but with compliant corrections specified by " . C Subroutine MOVXI is then modified such that it calrs subroutine SPRNG and adds a compliant position correction to every interpolation point before transforming it to joint coordinates.
1 1
EISTABLISH DIRECTION
OF COUPLETLO CYCLE .
0
FIG.5
move
OVER
bx'
I N TWT DIRECiI%'
Flow chart of contour tracking algorithm.
APPLICATIONS Contour tracking A task algorithm has been developed to realize a robot system capable of tracking an arbitrary unknown contour with a predetermined tracking speed and a constant predetermined contact force. There is no a-prior1 knowledge about the shape of the object to be tracked. All the path information has to be extracted from the measured force vector. The most obvious strategy is to generate control cycles consisting of two move commands. The first move command is perpendicular to the measured contact force vector; the second one, realizing a force feedback, is directed along the contact force and proportional to the difference between the measured contact force
394
FIG.6
Strategy of contour tracking algorithm.
Insertion stratcgy Insertion of cylindrical parts (bearings, axles, ) spline shafts) in beveled holes (housings, gears, with robots requires compliance in the feedback loop [31. The hcre presented robot features a multi-degreeof-freedom programmable compliance (fig.7) incorporated in the robot cont.ro1 itself. A typical. flow-chart of an insertion strategy for the initial approch phase and the actual insertion phase of the assembly cycle is represented in fig.8. As can be seen, different compliance values are needed in both phases 131. In this case the task description consists of programming the nominal insertion trajectory in world coordinates. The positioning errors due to parts misalignments and robot inaccuracies are automatically compensated for by the task algorithm. Inputs to the task algorithm are forces and torques measured at the contact zone.
...
FIG.9
Setup for robot-assisted plate hending.
Block stacking problem (palletizing) Tn a block stacking o r palletizing problem, the robot is to adapt to inaccuracies of the object dimensions or the environment by adding a compliant behaviour to the programmed trajectory. Subroutines MOVXJ and SPRNG are then combined as explained at the end of section Software
.
Manipulation of metal sheet in brake presses Bending of sheet metal parts with a brake press while holding the part with a robot requires on-line tracking of the plate position durinz bonding. The actual trajectory of the gripper is a combination of a circular movement around A and a change of toollength TI. (fig.9). This results in followlng force feedback algorithm :
I
bL(n+l) = KiL FTL(n+l)+K:L(F,L(n+l)-FTL(n)) where K and Kd are the proportional and derivative servo-c8nstants. The task algorithm flow chart is i l lustrated in fig.10.
I COORDINATE TRANSFORMATION
I COMMUNICATION WITH SERVICE INTERRUPT
I' FTC.10
Flow chart of plate tracking strategy.
CONCLUSION Present day off-the-shelve industrial robots do not allow flexible sensory tnteraction and off-line programming. In this contribution a flexiblc off-llnc programming system was presented allowing for on-line sensory feedback and built around a standard first Reneration robot. The application examples show clearly the need for suchlike systems for enabling to incorporate robots into flexible manufacturinR systems. Much work remains to be done at the programming end for arriving at intelligent model-based programming systems with automatic colltsion-free path generation. ACKNOWLEDGMENTS The work described in this paper I s supported by the NFYO (Belgian National Fund for Scientific Research), the Research Fund of the Katholieke Universiteit Leuven and the IWONL (Institute for Scientific Research in Industry and Agriculture). REFERENCES
FTC.8 Flow chart of insertion strategie with compliant robot.
I1
Drake, S . H . . Watson, P.C, and Simunovic, S.N., Draper Lab. USA, "High Speed Robot Assembly of precision parts using Compliance In lieu of sensory feedback", Proc. of the 7th International Symposium on Tndustrial Robots, Tokyo, 1977.
!*
Nevins, L.. and Whitney, D . , "Computer Controlled Assembly", Scientific American, February 1978. Vol. 238, "2.
!3
Simons, J., "Force feedback in robot assembly using an active wrist with adaptable compliance", Ph.D. dissertation, Katholieke Universiteit Leuven, 1980.
[4 I
Liebermann, L.X. and Wesley, M.A., "AUTOPASS: An Automatic Programming System for Computer Controlled Mechanical Assembly", IBM J. of Res. nevelop.. July 1977.
I5
FIG.7
Equivalent sDrins system of multi-degree' of Freedom compliant robot.
1 Jacobs, R. and Van Aken. L. "Real-Time Coordinate Transformations for Industrial Robots", Ingenieurthesis, Katholieke Universiteit Leuven, RlE13. 1981 (in Dutch).
395
[6]
Hohn. R.E., "Method and apparatus for cont.rolling an automaton along, a predetermlned path". U . S . Patent 3.909.600, Sept. 1975.
171
Whitney, D.E.,"Resolved Motion Rate Control of Manipulator and Human Protheses". l E E E t.r.?nsactions on man-machine systems, vol. MMS-10. N02. June 1969. p.47-53
r81
Lien, T.K., systems for of tho CIRP Vo1.9. NO1.
[91
Renaud, M. and Iturralde. J.Z.. "Robot manipulator control", Proc. 9th Symposium on Jndustrial Robots, Washington, March 1979. p.463-475.
"Coordinate Transformations in CNCautomatic handling machines", Proc. seminars on Manufact.uring Systems. 1980. p.49-60.
flO1 Van Brussel. H. and Slmons, J.. "The adaptable compliance concept and its use for automatic assembly by active force feedback accommodation", Proc. 9th Internarional Symposium on Industrial Robots, \Jashington D.C., March 1979. p.167-181.
396