Academia.eduAcademia.edu

Anthropomorphic robotics

1980, Biological Cybernetics

A study of the fundamental principles upon which manipulation dexterity is based cannot help mixing robotic and neurophysiological concepts. A preliminary step in this study consists of trying to understand the complexity of manipulation dynamics. Though complexity shows itself in the massive number of elements of kinematic and dynamic equations, the fundamental simplicity of the underlying mechanical laws suggests to look for a structure, particularly from the computational point of view. Accordingly, a working computational model is proposed that organizes the massive computational load into a structure which is composed of a small number of computational units and lends itself to parallel computation.

Biologioai Biol. Cybernetics 38, 125 140 (1980) Oymetios 9 by Springer-Verlag 1980 Anthropomorphic Robotics* I. Representing Mechanical Complexity M. Benati 1, S. Gaglio 2, P. Morasso 2, V. Tagllasco 2, and R. Zacearia: 1 Istituto di Matematica and 2 Istituto di Elettrote~lica, UniversitA di Genova, Italy Abstract. A study of the fundamental principles upon which manipulation dexterity is based cannot help mixing robotic and neurophysiological concepts. A preliminary step in this study consists of trying to understand the complexity of manipulation dynamics. Though complexity shows itself in the massive number of elements of kinematic and dynamic equations, the fundamental simplicity of the underlying mechanical laws suggests to look for a structure, particularly from the computational point of view. Accordingly, a working computational model is proposed that organizes the massive computational load into a structure which is composed of a small number of computational units and lends itself to parallel computation. 1. Introduction Robots need not necessarily be anthropomorphic in order to fulfill their function (i.e., to produce work with "dexterity"). However, their human counterparts are an unavoidable performance reference unit and, in any case, manipulation and dexterity are notions intimately related to the specific mode of interaction between humans and physical environment. As a consequence, a study of the fundamental principles upon which manipulation dexterity is based cannot help mixing robotic and neurophysiological concepts (Winston and Brown, 1979), as we shall do in the following sections. Manipulation is the activity of an operator, either a human or a robot, who determines the relative movements of objects and/or their mutual interactions in a certain environment, according to a given task. * This work was supported by a C N R InternationaI Project Contract Dexterity may be considered as a measurement 1 of manipulation capability in a generality of situations, i.e. for a number of tasks and environmental conditions. Present day industrial robots are far from being dexterous machines, since they can carry out manipulation tasks only in a very limited range of situations. At the same time, advanced robotic research is mainly focused on eye-hand projects, following an artificial intelligence approach. However, as experimental results show, an artificial intelligent eye and a mechanical arm is not yet a dexterous robot. Among the reasons for this (e.g., technology of sensors and actuators, insufficient computing power, etc.) we believe that an important point has been underestimated, i.e. the fact that manipulation dexterity is determined by two equally important and rather weakly coupled processes: the visual process and the motor process (Fig. 1). The consequence is that advanced robots are strongly biased towards the visual side. On the other hand, though vision is the sensory channel with the highest information content and it is essential for environmental analysis, task planning, emergency handling, etc., it is unable to cope with all the different manipulation problems in which forces or torques are involved, either in unconstrained movements or in interactions between a manipulator and a manipulandum (i.e. the object that is manipulated). In this essay, we shall investigate some aspects of the motor component of the manipulation dexterity, following an approach similar to the approach of Marr and Poggio for the study of vision. In particular, we shall examine, in this paper, the nature of the kinematic and dynamic phenomena underlying manip1 As a matter of facL a "dexterity quotient" (DQ) has been proposed to measure the performance of robots (Flatau, 1978), which assigns 100 to the "human robot". State-of-the-art industrial robots lag far behind (in the 10-15 region) 0340-1200/80/0038/0125/$03.00 126 DEXTERITY J VISUAL COMPONENT ANALYSIS pLANNING Y/2 ]. COMPONENT HANDLING COORDINATE TRANSFORMATION i CONTACT FORCE CONTROL DYNAMIC FORCE CONqlROL COMPLIANCE MODULATION Fig. 1. Visual and motor components of manipulation dexterity ulation, for the purpose of decomposing the corresponding computational load into modules which are related to basic mechanical facts. The rationale of this approach [which goes along with the interest in basic mechanics, at the Artificial Intelligence level, see De Kleer (1975)] stems from the fact that a very reasonable ("intelligent") way of dealing with problems, where mathematical complexity is generated by multiple interactions of a few principles (say, the Newton law and the conservation of energy), is to explicitly use them as modules in devising a solution. In the next paper, we shall detail such concepts by carrying out a dynamics analysis of some manipulation tasks (holding against gravity, inserting, fast moving, and throwing) and we shall point out the importance of the mechanical impedance of the manipulator in solving several dynamic problems. This will allow us to define the "Output Motor Impedance" of the manipulator and to put forward the notion that the control of manipulation movements is both a matter of generating force and of tuning the Output Motor Impedance. Furthermore, we should like to point out a general notion underlying our analysis, i.e. analog computation~ As a matter of fact, the idea of analog modeling, which has been used mainly for simulation of linear dynamic systems, can be generalized by using more complex modules than the traditional building blocks of analog computers (i.e. integrators and adders) and it can be used for trying to represent complex interactions, like in arm dynamics. The attractive feature of an analog model is that it solves equations simply by simulation and it is inherently parallel. In this view, we should revise the commonly used notion of computational economy (as the minimization of the total number of arithmetic operations) which is particularly meaningful for measuring the efficiency of an algorithm implemented on a sequential computer. Accordingly, our analysis can also be considered as an exercise in modeling manipulation kinematics and dynamics in a way suitable for a distributed, analog implementation. 2. Complexity of Manipulation Dexterous manipulation requires multiple degrees of freedom (d.o.f.) because 6 of them are necessary to locate a tool in three-dimensional space (3 position and 3 orientation coordinates) and more are very useful to solve additional problems related, for example, to range limitations of some d.o.f., to obstacle avoidance or to optimiTation of some dynamic criterion (e.g, total energy consumption). In the case of the human arm (Fig. 2), as a first approximation, it is possible to single out 7 d.o.f. (3 at the shoulder, 2 at the elbow, and 2 at the wrist) a. With regard to Fig. 2, it is appropriate to schematize the human arm as a three-pendulum (Le., humerus, forearm, hand). The kinematic and dynamic equations of a deceptively simple device like the human arm are non2 From the kinematic point of view, it does not make any difference to use the 32-2 or 3-1-3 allocation of ckos i.e. to attribute prono-supination to either the elbow or the wrist. However,from the dynamicpoint of view,the formerchoiceis closer to reality because most of the forearm mass rotates during pronosupination 127 Fig. 2. Mechanicalstructureof the human arm linear, of course, and quite difficult to integrate analytically, but more than that the number of terms of such equations increases quite quickly with the number of d.o.f, and it reaches thousands for a 6 d.o.f, manipulator. For this reason, even writing the equations becomes a complicated matter which can be solved practically only using sophisticated symbolic manipulation techniques (Sturges, 1973; Dillon, 1974). However, the explosive amount of mathematical formulas, which comes out of these procedures is of little use, on one hand, in helping to understand the principles of human arm mobility and, on the other hand, in determining appropriate control schemes for artificial manipulators. It is natural that shortcut solutions have been used in industrial robotics, which put complexity of manipulation modelling between brackets. For example, the technique of teaching a robot by moving its arm is just a trick which exploits the brain of the human teacher as a solver of the "tremendous" kinematic equations. Another common trick to offset the effect of gravity is to balance it (at least for a nominal load at the tip) at each joint: but this, unfortunately, doubles the weight of the manipulator (and slows it down). Moreover, as far as dynamics is concerned, the non-linear interactions between different d.o.f, are usually considered "unknown disturbances" and their effect is counteracted by "stiff' (i.e. high gain) position servos which force each joint of the manipulator to follow a prescribed trajectory (but the errors become higher for higher velocities). From considerations of this nature it is easy to conclude that if we want to understand manipulation in some generality (i.e. preserving the flexibility of solving widely differing manual tasks) we must preliminarly face the mathematical complexity of kinematics and dynamics of manipulation. A heuristic step in this direction can be taken by observing that, notwithstanding the unmanageable complexity of the fully developed manipulator equations, such complexity basically originates from multiple applications of a few fundamental mechanical relationships. Among the others, it is easy to single out the velocity distribution of rigid bodies, the kinetic energy of rigid bodies, the additivity of angular velocities, etc, At the computational level, this approach should allow us to determine a small number of computational units to be used, in multiple combinations, to represent the different aspects of manipulation. Only at this point can meaningful motor control problems be formulated and different motor strategies be evaluated. Interesting contributions are available in the literature (Uieker, 1965; Paul, 1972; Horn and Raibert, 1978; Luh et al., 1978; Raibert, 1978; Vukobratovic, 1978 ; Orin et al., 1979 ; Hollerbach, 1979). Our contribution is characterized mainly by the following features: 1) it focuses on linkages rather than on joints and it seeks a formulation of equations which is suitable, 2) for parallel computation, and 3) for the estimation of physical parameters. Focusing on linkages is a natural choice for human-like arms, in which the actuators act directly on the linkages and not on the joints (we shall call them tendon-arms, in the following). The second point is motivated by the general concept of analog modeling, and the last feature is related to the fact that, in a real manipulation environment, the physical parameters (due to the distribution of masses) will change their value frequently. 3. Kinematics of Manipulation As we showed in the previous section, a humanoid arm can be schematized as a three-pendulum, in which three linkages (corresponding to the humerus, the forearm, and the hand) are connected by three joints (related to the shoulder, the elbow, and the wrist) (Fig. 3). In general, a joint is an articulation between two bodies which allows, at most, three d.o.f. We shall study the motion of the linkages relative to a frame of reference (frame 0) attached to the body, assuming that this frame can be considered as inertial. It is also convenient to attach a system of coordinates to each linkage : frame 1 to the humerus, frame 2 to the forearm, and frame 3 to the hand. These frames rotate, one with respect to the other, and their relative rotations 128 ~2x Fig. 3. Schematized mechanical structure of the humanoid arm. Cone shapes are only used for pictorial representation convenience. Cone 1 represents the humerus, cone 2 the forearm, and cone 3 the hand. Frame 0 is body-fixed,frames 1, 2, 3 are affixedto cones 1, 2, 3, respectively.01, 0z, 03 coincide with the joints, la, 12,l3 are the lengths of the linkages and G1, G2, G3 are their centers of mass. P is a point on the Terminal Device (i.e. the last linkage) can be expressed by means of 3 x 3 rotation matrices, which allow us to relate the components of a vector in two consecutive frames. Let us call ~ 1_R2, 2_R3 the rotation matrices 3 from frame 1 to frame 0, from frame 2 to frame 1, and from frame 3 to frame 2 respectively. If il~ and i- l_v contain the components of the same vector with respect to frame i and i - 1 , respectively, the following relations hold: t-l~=i-l_Riiu, t..t2=i_Rt_lt-l~_, I_Ri_I=(I-IRI)T (rotation matrices are orthogonal). Furthermore, the structure of the rotation matrices is the following: ~-l_Ri=[t-ti'.l-l::i-lkq-ri -i: l~ - t J - L - ii - a l !/it_illt_kl_a]r and i l_ 1, Ji- 1, kt- 1 are the unit vectors of frame i and i - 1, respectively). The elements of a rotation matrix are not independent and can be expressed as functions of, at most, three independent variables (the free variables of the articulation). The set of free variables is not unique and the choice is dictated either by computational reasons or (it, ]i, kt 3 Notation: arrays are denoted by underlining; lower case symbols are used for monodimensional and upper case symbols are used for bidimensional arrays. " 7 " is used to denote the transpose of an array. Vectors (in the sense of classical mechanics) are denoted by boldface symbols; an integer left apex (0,1, 2, 3), if used, indicates on which frame the vector is projected by estimating which variables are more "natural" for the problem at hand. In the robotic literature, even in the case of anthropomorphic arms, it is c o m m o n practice to represent the arm as a chain of n bodies (where n is the total number of d.o.f.'s) separated by mono-articulated joints. This representation is motivated by the fact that the mobility of most industrial robots is assured by n motors (each of which acts on an individual and independent axis) according to a methodology and terminology which mainly originate from the field of numerical control of machine tools. As a consequence, many of the n bodies of the model have a negligible mass and represent particular mechanical solutions to the mechanically dittScult problem of hosting, in a close space, the motors which drive contiguous axes. On the contrary, for a humanoid arm it is natural to divide the free variables into three sets, which correspond to the three physical articulations: !tl (shoulder), !t2 (elbow), 93 (wrist). !tl is threedimensional, since the shoulder is a spherical joint and its elements can be equated to the orientation parameters (e.g. Euler angles) which express the rotation between two frames. !tz and 1/3 are two-dimensional and their components are a subset or a combination of the orientation parameters. 3.I. Orientation Parameters The first remark which needs to be made about orientation parameters is that a single choice is not sufficient to model effectively different aspects of manipulation problems. For example, if we want to express the orientation in space of an object to be manipulated, it is natural to associate some symmetry axis to the object and then to estimate its tilt, its slant, and a rotation of the object around it. These parameters correspond to the well known Euler angles, which are equally useful to describe the motion of a gyroscope, of a cardanic joint or of some type of robotic shoulder (Fig. 4). It is also easy to understand that the convenience of the Euler angles derives from the use (for measurement and/or control) of three well defined axes : an axis fixed to the environment, an axis fixed to the body, and an intermediate axis normal to the previous two. As a second example, if we want to describe finite rotations of a body around an arbitrary axis, the Euler angles are not a good choice. For this kind of movements, we may consider arm movements in which (with fixed wrist and elbow) the shoulder is rotated keeping the fingertip fixed in space. 129 ~2 Fig. 4. Example of a mechanical manipulator structure for which the Euler angles are natural coordinates -.... Fig. 5. Example of the shoulder joint of the human arm, for which Rodrigues parameters could be natural coordinates. The humerus undergoes a finite rotation of amplitude Z along the indicated axis. Q is the Rodrigues vector In this case, it is better to use Rodrigues parameters, which have been derived from the theory of finite rotations (Lur'6, 1968; Bisshop, 1969), according to which a finite rotation Z around an axis of unit vector e is represented by a vector Q= tan z/2e (Fig. 5) and the composition of two successive rotations ~1, 02 follows the rule : Q=(e, +e~ +e~ x Q,)/(1-Q,.e~). Finally, let us consider the following simplified model of muscle geometry: a set of ropes pulling on a mast. This type of arrangement is not represented effectively either by the Euler or Rodrigues parameters Fig. 6. A proposal of orientation parameters which are better suited to represent muscle geometry than Euler or Rodrigues parameters. The first two parameters are the angles between the axis of the joystick with the rotation axis of each of the two semicircles (which are referred to as X and Y axes of the fixed frame). The third parameter is the rotation angle of the joystick around its own axis (which is referred to as Z axis of the moving frame). The idea of this "anthropomorphic" joystick, its design and realization is due to Mr. Claudio Beretta and its nature might be captured by the set of coordinates which are shown in Fig. 6 : the angles which are formed by the body axis with two orthogonal axes fixed t o the environment, together with the rotation angle of the body around its own axis. The first two coordinates can be associated to two pairs of muscles which pull on the body and which are attached to the extrema of the two semicircles. In particular, the use of these two coordinates, allows us to overcome the hierarchy which is implied by the use of the Euler angles (precession first, nutation second). In Appendix A we report the structure of the rotation matrices which correspond to the previously mentioned orientation parameters. 3.2. Trajectory of the Terminal Device With regard to Fig. 3 and taking into account the notation described in Footnote 3, it is possible to compute the position of a point P of the TD from the following relationships (where 01,02,0 a identify the joints) roz P = ro~o: -}- ro2oa + 1"03P ~ = ~ 1 lr0102 9 ~ 11R2 2r0203 -Jr ~ 1 1 R 2 2 R 3 3r03 P . 130 ARM CONFIGURATION q3 q2 ql (X Y Z )' P P P (0 0 13)' (o 0 12)' 0 Ii)' (o 0 0)' (0 1 0 )' (0 0 i )' (rll r21 r31)' (r12 r22 r32)' ~ (r13 r23 r33)' lF~g.7. Analogmodel of the computation process from arm configurationgr = [gr!/arar] to hand position 0fp YvZv coordinates of the point P of the hand) and to hand orientation (ru: elements of the global rotation matrix). The blocks of the model perform vector-matrixmultiplication, Le. they compute weightedsums of the input array componentswhere the weights are modulated by the variations of arm configuration, l l, 12, 13 are the lengths of the humerus, forearm, and hand-to-the-tip, respectively. ~ , 182, 2B3 are the rotation matrices related to the shoulder, the elbow, and the wrist, respectively If we now pass to matrix notation and use the following three constant arrays rl= 0 , f2= 1 0 , r 3=- 2 we can write the following equations [-Oxp' o yp, Oz/,] r=o_Rlr I +O_R1 l_Rz_r2+O_R1I_R2 2_R3_.p3 (3.1) ~ = ~ 11/322_R 3 which allow us to compute the trajectory of the terminal device (position of P and orientation) with respect to the reference frame and which can be interpreted as an analog model (Fig. 7)*. As far as orientation is concerned, it can be identified by three variables (e.g. Euler angles) which can be computed from the elements of ~ 3 by using one of the formulas (A.2, A~7) of the Appendix A. It is also interesting to note that these parameters need not nec4 The matrix-vector product, which produces a vector, can be simply represented as a weighted sum of vector elements, where the matrix stores the set of weights. In the particular case of the figure, the weights are not constant but are modulated by a process which monitors the values of the free variables essarily be of the same type of the parameters which are used for the intermediate computations. The choice of parameters for the intermediate matrices should reflect the geometry of the joints and the muscles, whereas the choice of parameters of the hand should be related to the geometry of the environment and, therefore, to the visual world. The previous equations and the previous model define the forward computation: from the rotation of the joints to the motion of the hand. On the other hand, in m a n y manipulation tasks the prescribed actions are naturally expressed as desired trajectories of the hand. Therefore, an inverse computation and an inverse model are needed. This problem, in general, is quite complex and several possibilities can be investigated (Benati et al., 1980), but within the context of our present analysis we shall restrict our attention to the case of small displacements, which has already been studied (Whitney, 1969) and which we shall use in the next paper, dealing with contact forces and compliance. Let us call 2~ the ensemble of three position and three orientation variables of the terminal device, and !t the ensemble of the free variables of the manipulator. Equations (1) define then the following non linear mapping : f :_x+-_q. (3.2) 131 This mapping hardly allows an analytical inversion, however it can be linearized, for small angular displacements as follows: c3s =d61/, (3.3) where d is the Jacobian matrix o f f , i.e., the ensemble of all the partial derivatives of each element of _x with regard to each element of 9. If the matrix is square and not singular s, system(3) can be simply solved by inverting d. Therefore, the inverse Jacobian matrix allows to compute the small variations of the joint coordinates which are necessary to achieve desired small variations in the position and orientation of the hand. derivatives of the g's into the components of the relative angular velocity, projected on the moving frame (let us call it _A): '_0) 1 = _A,~, (3.5) 2~02.1 = 32[q2 3_033,2 ~-_A3~ 3 where _A1 is a function only of!/,, 32 0f92, and A 3 of !/3- The structure of these matrices depends on the choice of the flee variables and it is reported in the appendix. It is then possible to put (4) in computational terms by using previously defined rotation matrices to express all the vector components in the same frame: I_(~DI ~_I~L~ 1 3.3. Velocity of Joints and Linkages 2_m2 = A ~ 2 + 2R,_A d l An explicit derivation of the angular velocity of the linkages and of the velocity of the joints (as functions of the free variables and of their time derivatives) is necessary in order to investigate the structure of the kinetic energy and of the resulting dynamic equations. Angular Velocity of the Linka#es. Since composition of angular velocities is performed by the parallelogram rule, absolute angular velocities of each linkage can be computed by vector addition of the relative velocities of one frame with respect to the previous one : 3_R22_RI_At_~I . Velocity of the Joints. Also this information is needed for the computation of kinetic energy and it can be derived from the well known velocity distribution formula for rigid bodies. In our case, we are interested in determining the velocity of the joints since we shall use such variable in the computation of kinetic energy, and the above-mentioned formulas can then be expressed as follows: V1 =0 03, 0"12 =0"12,1 -}- 0)1 3(,93 = _A3.~3+ 3_a2_Ad2 + (3.6) (3.4) (0 3 = 013, 2 21- 0.12, ' + Ill, , where co,, ~2, r~ are the angular velocities of the three linkages referred to frame 0 and co2,p c03,2 are relative velocities between consecutive linkages. It is well known that relative angular velocities between two frames depend linearly upon time derivatives of the free coordinates (e.g. the Euler angles); and this allows us to identify a second computation module, for example the matrix which maps the time 5 If J is not square, only the "redundant" case, in which !/ has more dimensions than g, is of interest : this means that, for each 62;, infinite choices of ~g are possible. Then some additional constraints can be added and, among the other possibilities, the 6!t can be chosen which minimiTes a quadratic criterion 61/TAI~1/(whereA is a positive definite matrix). The solution to this problem (which is closely related to a minimization of kinetic energy, since kinetic energy is a quadratic function of )) consists of the weighted pseudoinverse of.J, i.e., A IJT(JA- IjT)- 1. Ifd is square and singular, this corresponds to kinematic singularities of the manipulator (e.g., stretched linkages) which must be avoided with appropriate heuristics in the determination of the desired trajectory of the terminal device, possibly breaking the trajectory into a number of segments V 2 ~ V 1 + ( I ) 1 X rolo2 V3 = V 2 -t- (t}2 X r0203 since 1_rolo2=[0 , 0 , / , I t and 2r%03=[0 ,0,12] r, it is convenient to project the last two relations on frame 1 and frame 2, respectively, and then : v 2=co l x r 0 1 0 2 = d e t , _.a~2_q1 9ra~ 0 , 11 J where -air1, -12,-13 a T a r are the first, second, and third row of _A1, respectively. The result is 1-~2 11[gf291' ---af191, 0] r = and in order to represent it in a convenient way, we can define a .... operator which, applied to a 3 x 3 matrix, acts as follows: 1)it interchanges the first and the second row of the matrix, 2) it negates the second row, 3) it clears the third one. Using this notation, the previous result can be expressed as follows: l~_2=l,dd,, . 132 The interesting features of these formulas (which we shall try to preserve also in following developments in order to achieve a modular structure of kinematic and dynamic equations) are 1) the explicit dependence on the ~'s, 2)the use of a few standard operators (_R,A,~), 3)the explicit dependence on manipulator geometric parameters (It's). q :> > C) H > 4. Dynamics of Manipulation ~e 9 H O Z U A convenient way of writing the dynamic equations of the manipulator is to follow the Lagrangian formulation which, once the free coordinates have been selected (ql, q2 ..... q~), allows us to write the following set of simultaneous equations r~ i I d 8T Q~= dt 8ik Fig. 8. Analog model of the computation process for the inertial forces, i.e. the forces proportional 1)to angular acceleration and 2) to angular cross-velocity products../is the kinetic energy matrix and the C~ matrices (as many as the number of degrees of freedom) correspond to the Christoffel symbols. These blocks perform vector-matrix multiplication, i.e. weighted sums of the input array. The block S performs the scalar product of the two input arrays. !/is the arm configuration array and 1t, 9 its first two time derivatives A property of .... which can be easily verified for the product of matrices 6 is the following: and it can be extended to the product of more matrices (i~e., "~" affects only the first element of a product). Taking this into account and using (6), we can now compute %, projecting it on frame 2. In conclusion, we have the following formulas for the computation of the velocities : ~h =0 lv2=/13~1 (3.7) i= 1..... n, T~, 9)= 89 2 E Is~?tjitk= 89 where the Ijk's are functions of!/and are elements of an n x n symmetric, positive definite matrix (the kinetic energy matrix). If we plug this form of kinetic energy into (1), we can obtain the explicit expression of the dynamic equations : k 2 o ~ On the other hand, _~fN = [-m2, - _ml, 0] r [B1,1/2, Zt3] which is identical to the previous matrix (4.2) ] k Q,=ZI,fft"k+ZZCjk,itjih, -- ~n (4.1) where T is the kinetic energy and the Qi's are called generalized forces, each of which results from the sum of many contributions (driving forces of the motors or muscles, gravity, viscous and elastic components due to the internal mechanical impedance of the actuators, actions due to the interaction of the terminal device with the environment etc.). In short, what (1) states is an equilibrium among generalized forces and inertial forces (related to T). The complexity of (1) stems mainly from the fact that T is a complicated function of the q~'s and ?ti's, involving 1) non-linearity, 2) cross coupling among the different degrees of freedom and 3) a remarkable complexity of the second members of (1). Though this makes the direct derivation of equations unmanageable, there are very well known facts which help in outlining a meaningful approach to the problem. First of all, it is known that for a scleronomic system (i.e., with time independent constraints) the kinetic energy is a quadratic function of 2~B = I 1 2 _ R I _ A ~ 1 ~-/2~[2_~2 + l 2 2 ~ 1 _ A 1 ~ 1 9 6 Let us partition M into rows and ~ into columns: M=[r~l,_m:,_r%]r, br= [/h,1/2,1/3] . Then 8T 8q~ j i=1, ...,n k which can also be interpreted by means of the analog model of Fig. 8. At the same time, the C3k~coefficients, known as Christoffel symbols (Corben and Stehle, 1950), according to the same derivation can be seen to 133 depend upon the I~k's according to the following relations : 1[ Olik OI'j--VI:kl CSk~ = 2 [Oqs + ~qk ~q~ J i,j,k=l, n7 . .... (4.3) the elements o f / on mass distribution related coefficients, which is important in model identification. 4.1. Kinetic Energy and Inertial Forces Since the kinetic energy matrix !, as we showed in the previous section, is a fundamental block for the computation of inertial forces, it is quite important to define its structure in terms of simpler blocks. Furthermore, if we take into account that the array of free variables _q can be naturally decomposed into three sub-arrays !tl,5t2,!t3, which correspond to the three linkages of the arm, a natural decomposition of (2) can be performed as follows: As a consequence, most of the information about the manipulator model is contained in the _/matrix and the computation of the value of its elements (which are very complicated functions of the arm configuration 9) is a central point in the modelling and control of the manipulator. One way to reduce the complexity of the computation of the _/matrix is to represent its elements in tabular form (as a function of a discretized set of arm configurations 1tk, k = 1, N (Raibert, 1978). The attractive side of a table based model is that, during real time control, the complex evaluation of non linear parameters is simply reduced to a table look-up. However, this type of representation buries in the tables the dependence of the non linear inertial parameters upon the coefficients related to mass distributions. As a consequence, any abrupt change in these coefficients (which results, for example, from picking up an object) outdates all the tables and forces to a procedure of adaptive re-evaluation which converges to the new values but in a very slow "un-anthropomorphic" way. Of course, this does not mean that tablerepresentation of complicated functions is very unlikely to occur in biological mechanisms, in general, and in the motor control of the arm, in particular. On the contrary, this is a very tempting and general idea to be taken into account while trying to understand manipulation; however, it is our feeling that table representation is possibly more appropriate to describe highly practiced, repetitive movements, which suggest a table storage of the motor output commands, rather than storage of parameters. The alternative to table representation of parameters is analytic computation. However, at least two approaches are possible: 1)one goes directly to an explicit formulation of each parameter as a fully developed function of5/, 2) another one, which follows the ideas of the previous section, tries to single out a small number of computation units which can be composed in different combinations in order to compute the value of the _/ matrix for a given arm configuration 9. For the same reasons that we put forward in the previous section, we shall follow the latter approach, taking into account (apart from modularization of the computation structure) specifically the dependence of where v~ are the absolute velocities of the joints, o~ are the absolute angular velocities of the linkages, r0,~, are the vectors connecting the proximal joint of a linkage with its center of mass, M~ are the masses and Jo, are the inertia operators s of each linkage with respect to its proximal joint. The summation count (three) stems from having schematized the arm as a three-pendulum. Since both the velocities of the joints and the angular velocities of the linkages depend linearly on the time derivatives of the free variables [according to (3.6) and (3.7)], it can be well understood how, by inserting the expressions above in the expression of T, we can obtain a number of terms with the desired form 9~N_q/2. However, some of the g ' s are bound to loose a modular structure if we do not assume that 1) the center of mass of each linkage is placed on the line connecting the two joints of a linkage and 2) that this line is an axis of material symmetry. Of course, the above hypotheses are quite reasonable for the first two 7 Similarly to the I u coefficients, which can be conveniently grouped in a (n x n) matrix, so the C ~ coefficients can be grouped into n(n x n) matrices ffl (i = 1..... n), which are symmetric 8 Inertia operators m a p vectors into vectors. For a given frame, an inertia operator is represented by a symmetric matrix, which we denote by io, 1/1/31ii1 where the symmetry of I implies that lii's are symmetric and that Ls=!~. We can find the structure of each 1~; matrix if we can express the total kinetic energy of the arm as a linear combination of terms with the form 89 (_K is a generic 3 x 3 matrix). Keeping this in mind, we can compute the total kinetic energy of the arm using, for example, the following standard formula valid for rigid bodies: 3 T= ~t[- 89 M~vi.o~ x r0,G, 1 + 89 :r (4.4) 134 segments of the arm. In the last segment, we must take into account the presence of tools or objects which are held by the hand, and then the previous hypotheses are in general not necessarily valid. It may be observed, however that most tools purposely designed for dexterous manipulation (hammer, ax, tennus racket, etc.) at least approximately satisfy such requirements. According to these hypotheses the following notation can be used: It is now possible to sort out the contributions of T,, Tb, and T~in order to obtain the explicit expressions of the ! u submatrices of the kinetic energy matrix : 11~_= (M212+M312)K- l+M312-Ka+(M311Iz+Mzd211)~,s + Mad311K-13 + M3d312-K15 + _K16+ ~18 + -K22, I_22= M31I_K2 + M3d312~g~14+ ~ l T + _K21, --/33 ~--"/~i~20, (4.8) ii 2 ---/21 -- (M31112 + M2d211)-Ks + M312K-6 + M / d ~ K~ + M/~I~K_ ~i+M/~l~g~:+g~9+gl,, -- TO,O, = [0, 0, dt] T i=1,2,3. -/o, = diag [Io, 11, Io, 2> Io, 33] It is now possible to develop the calculations implied by (4), in order to make explicit the form of the elements of the inertia matrix. To this purpose, it is convenient to break T into three contributions T=L+Tb+T~, where the first term groups the contributions due to the squared velocities of joints, the second term takes into account the cross products between velocities of the joints and angular velocities of the linkages, and the last one is related to squared angular velocities. With regard to the first term, it is sufficient to apply (3.7) : thus we obtain the following result (the structure of the _Ki matrices is listed in the appendix): Ta 1/2(M2I~+M312)~TK_~q, + 1/2M3l~fqrK_z.q2 = q- 1/2M3l~fqT_K3~l + 1/2M3lll2fqTK4~l + Mal ~ I ~ 5 ~ 2 + M31~T_K6112. (4.5) For the computation of the second term of the kinetic energy, we need to express in matrix notation the vector product o~ x ro,G. The assumption that ~ro,G, has only one non-zero component allows us to use the same procedure previously followed in order to compute lb. Applying then (3.6) and (3.7), we obtain the following result : Tb = V2dal,~rN5)2 + 1/2M2d2l~rK_,,~l !23 __ T __ ----/32 -- M3d312-K1o+/~23" T 4.2. Potential Energy and Gravity Forces The presence of gravity introduces generalized forces into the first member of Eq. (4.1) which can be computed from the potential energy U as follows: Q~ = OU i = 1, ..., n. (4.9) Oqt The potential energy is a function of arm configuration 9, i.e. of the free coordinates of the three linkages (91,92,93), and we shall show that such a function can be computed taking a similar approach to the one followed for kinematics and for kinetic energy, which has allowed us to single out basic computational units. The potential energy of the manipulator is the sum of the three contributions due to the three linkages, each of which is proportional to the z coordinate of the center of mass with respect to the body-fixed frame (Fig. 3). Computing the z coordinates is just a particular case of the problem of determining ~ (Gt's are the mass centers), which is quite similar to the problem previously faced in the computation of the mapping from joint coordinates to TD coordinates. As a consequence : ~ + Mad31~qT-K9~a + M3daI~ TI-s o!t3 ~ = ~ 1lr01Gt = ~ 1lro~o~+ ~ 11R~ro~o~ 1ro~o2+ 0RIR2 1 22 r02%+ 0RllR22R33r03(~3 ~176 + 3d31j _K12ql + 1/2M3d3l~rN~3~t + 1/2M3d31~TI_~t4)2 + 1/2M3d31z[qrN, 5~i" -- I_13 = I._Tl= M ad311~ 7 -F M 3d31212~9-t- [2~24 + M3d311)T_K@3 -}-M3d31,.~rKs)2 + M 41Af_Iq Z and using the following notation for convenience (4.6) irow~ =-d_t=-[O,O, dt]T Finally, for the computation of the last element of the kinetic energy, it is sufficient to apply directly (3.6), ir_o,o,+ = s -- [O, O, li] r Tc = I/2~Tgl 6~1 -]- i/2~f/3[~ 7/]z + I/2~trg~ 8~1 -[-~IK19~1 -}- 1/293r_K2093 + 1/29r _Kz~2 + 1/2~r_K2z~, +/13r_Kz39z -~-~ 3Tg 24.~ I-~2T_K25.~ 1 . i=1,2,3 i=1,2 we can obtain the following expression for the potential energy : U = MIg[~ + Mz# (4.7) [~ +~ +M3g[~176176 1-R2d2] 3 11R22R3d313, (4,10) 135 525252 (0 0 M3d3)' (0 + (0 0 0 M2d2)' + M312 )' (0 + (0 + (0 0 0 0 M dl)' M~I 1 ) M311)' (o o 7 + + g) Fig. 9. Analog model of the computation process for the potential energy due to gravity, oBa, ~N2, 2-R3 are the rotation matrices related to the shoulder, elbow, and wrist, respectively. These blocks perform vector-matrix multiplication. 9 r = ~qr!/rg~] is the arm configuration array, 9 is the acceleration of gravity. Mz, M2, M a are the masses and l~, l;, 13 the lengths of the humerus, the forearm, and the hand, respectively, dl, d2, d 3 are the distances between the centers of mass of humerus-forearm-hand and shoulder-elbow-wrist, respectively where g is the gravity acceleration and the index out of the square brackets means that only the third component (i.e. the component along the z-axis) must be considered. An analog model which corresponds to the computations indicated by the previous equations is shown in Fig. 9. 5. Computation and Filtering Complexity of manipulation is a fact that no particular approach can hide. However, the line of thought that we outlined at the beginning of this paper has allowed us to transform extreme complexity into a very heavy computation load, which is characterized, on the other hand, by a great deal of structure. This structure, which basically rests upon the use of canonical computation units (which involve the R and A matrices and the ^ operator) mirrors the fundamental simplicity of mechanics which shows itself, for example, in synthetic statements like equations (4.1) or relations (4.3). However, our job is not completed yet. We have succeeded in expressing a well structured computational model for the mapping f from joint to hand coordinates (3.1), for the kinetic energy matrix I (4.8), and for the potential energy U (4.10). What is still missing is a computation process for 1) the Jacobian matrix d of f, 2)the C~'s matrices which determine Christoffel symbols, and 3)the gravity dependent force Qg. What these entities have in common is that they measure the sensitivity of configuration dependent functions to small variations of the configuration of the arnl. If we try to t'md an explicit formulation of d, C~'s, Q0, we should have to develope the partial derivatives o f f , !, and U, respectively, according to the formulas (3.3), (4.3), (4.9). If this is done, however, we loose modularity and we obtain a very unstructured computational process. Furthermore, we like to put forward the notion that f, !, and U are "more important" than J, C~'s, and QO, in the sense that the information on the geometrical structure of the arm is explicitly used to define the computational structure of the former and not of the latter. These considerations suggest to set up an estimation procedure for such entities which exploits the computational processes related to f, !, and U, respectively. A possible solution may consist of the use of filtering processes, cascaded to the main blocks (Cx, C t, and C v in Fig. 10). For this purpose, it is necessary to superimpose on the input vector !1(t) a small test vector (69(0) consisting of a set of orthogonal signals (Van Trees, 1968). The filtering blocks can then be built by using banks of filters, tuned to the different test signals, which sort out, for each of the output variables, the sensitivity to each of the configuration parameters of the arm. In conclusion, it is possible to conceive a processor, that is fed by estimates of the arm configuration ~ql,!h, ga) and computes all the relevant model variables (the inertial parameters I.lk, the Christoffel symbols Cj~, the gravity torques, the coordinates of the terminal device, the Jacobian matrix of the mapping between joint and TD coordinates etc.). Furthermore, the updating of the model parameters depends also on the coefficients related to manipulator geometry and mass distribution and this generates a parameter identification problem, which will be briefly discussed in the following section. 136 TaNel Model modules Updating rotation matrices Mapping f, from .q to x Jacobian matrix o f f Kinetic energy matrix Inertial forces due to acceleration Matrices related to Christoffel symbols Inertial forces due to cross-velocity terms Potential energy Gravity dependent forces Total Multiplies Adds 45 21 12 18 ~ 500 49 ~ 300 42 Filters 42 312 392 336 46 31 196 7 ~ 1053 ~ 1051 245 A~ GEO~TRY COEFFICIENTS solved the problem of motor control in manipulation. As. a matter of fact we have only solved the very preliminary, though crucial, problem of representing and computing a detailed but manageable model of manipulation kinematies/dynamies. Control comes afterwards, but we feel that robot control systems exhibiting anthropomorphic manipulation dexterity could rest on a detailed representation of a manipulator model similar to the computation structure that we have outlined_ On the other hand, the same effort to represent mechanical complexity is also crucial in the neurophysiological study of arm movements in mammals, because the non linearity of manipulation and the essential difference between 2-D and 3-D movements prevent using simple 2-D experiments involving one or two degrees to infer general characteristics of motor control in manipulation. 5.1. Model Parameter Identification &~(t) ;> x ~> C_L . . . . C_n i.> _i U Fig. 10. Computation and filtering 3 (position and orientation of the hand), i (kinetic energy matrix), U (potential energy) are generated by explicit computation process (Cx, CI, Cv, respectively). (Jacobian matrix), ~1, ..., ~, (matrices related to the Christoffel symbols ; n is the number of cko.f.), ~" (gravity dependent forces) are generated by sensitivity estimates, which involve filtering. _q: arm configuration array; 6!/: orthogonal test signals. F: banks of filters tuned to the test signals The size of the computational load which corresponds to the overall model is summarized in Table 19. These numbers can be regarded as an index of complexity of the task of programming arm motions but they do not give the whole picture, in particular they do not express the degree of parallelism which is inherent in the mechanics of the arm and which we tried to preserve in our model. A very important remark that we must make at this level, however, is that by no means we have faced or 9 The numbers reported in Table 1 are only indicative. In estimating them we tried to take into account the symmetry and systematic sparseness of some of the matrices of the model The working model of manipulator dynamics that we described in the previous section depends on coefficients related to geometry and mass distribution. Therefore, it is very important to conceive a practical technique to estimate these coefficients in case of changes in their values determined, for example, by the use of different tools or loads. Since identification of these parameters can only be determined by means of "experiments" in which inputoutput measurements are performed, it is useful to focus our attention on input-output equations of the manipulator, such as the following ones Q~+ Qf-= Z I~,it"k+ Z ~ Cj~itki!j k i= 1,..., n. k j The inputs, which can be thought to be measured by appropriate sensors, are the Q~'s forces generated by the actuators, and the outputs are the time courses of the q/s. The coefficients which need to be estimated are the masses, the principal moments of inertia of the linkages and the geometrical parameters (di, l~). These coefficients determine the values of Q~, I~, and Cj~. The input/output equations are non linear in the dynamics, but depend linearly upon combinations of coefficients, as can be verified inspecting the expressions for Qf, I a, and Cj~ respectively. However, in our model we have computed Q~s and C j s by means of filtering and this does not allow us to exploit, during identification, the mentioned linear dependence. It seems then natural, within the frame of our model to plan identification experiments which reduce the complexity of the identification problem. In particular, this can be done by performing small oscillations across an equilibrium configuration. 137 iZX DYNAMICS t I-lz iy to --3 COEFFICIENTS Fig. 12. Definition of Euler Angles for the measurement of the relative rotation between f l a m e / 1X, l- 1E t- 1Z and frame ~X, ly, tZ (t = 1 for the humerus, 2 for the forearm, 3 for the hand). N : axis of nodes; 0: nutation angle; T#: precession angle F'[~. 11. Identification of manipulator arm coefficients. Input torques Q"(t) induce small oscillations of the free variables around a configuration of equilibrium 9 ~ ID i: Identification blocks. Each of them estimates a row of the kinetic energy matrix (I~, j = 1, ..., 7). The output coefficients (masses, distances, and moments of inertia) are computed by algebraic computations which involve the elements of the kinetic energy matrix and the canonic matrices _At,~Rj evaluated at the equilibrium configuration According to the theory of small oscillations, crossvelocity terms can be neglected, gravity dependent terms can be linearized (i.e. reduced to terms proportional to displacements), and the kinetic energy matrix can be assumed to be constant. With these hypotheses, the input/output equations reduce to the t- 1R t : Appendix A: Orientation Parameters Euler Angles Considering, for example, the shoulder joint, the three Euler angles measure rotations along three axes which do not form an orthogonal base (Fig. 12): one axis is fixed to the body, another axis is fixed to the humerus, and the third one is orthogonal to the plane formed by the other two. If we defineg/as [-~l 0~ (p~]T(where tpi is called precession angle, 0~ nutation angle, and qh denotes rotations around the ~Z axis), then the rotation matrix has the following structure: cos ~p~cos r - sin W~cos 0~sin (pC sin ~i cos (p~+ cos W~cos 0t sin c#t sin 0 t sin @i1 T - (cos W~sin r + sin ~ cos 0~cos (p~) -- sin,& sin ~0~+ cos,:~ cos 0~cos :#~ sin 0i cos q)~| sin W~sin 0~ -- cos ~ sin 0~ cos 0~ J and the Euler angles can be evaluated from the elements r u of the rotation matrix ~- 1R~r using, for example, the following formulas: following ones: Q~+Q~(-q~ (A.1) i=1 ..... n, where go is the equilibrium configuration and Aqk's are the displacements across it. The equations are now linear, and input/output measurements on the values of Q~'s (the input), and Aqk's , 0"k's(the output) allow one 0Qf to easily estimate the parameters of the model { - - / \ ~qk/~o and I~e The former parameters are of little use, but the latter are known explicit functions of the coefficients that we need to estimate (see the previous section). Finally, it is interesting to remark that the previous input/output equations lend themselves naturally to a parallel computation approach, in which n-identical estimators operate independently on each row of the kinetic energy matrix (Fig. 9). 0=COS-lr33 if r3e/SinO~O if r32/sinO>O ~sin l(r31/sinO ) ~= [lr--sin-l(r31/sinO) ~sin-l(r13/sinO) if r23/sinO>=O qO= [Tz_sin_l(rxa/sinO ) if r23/sinO<O (A.2) The angular velocity of frame i with respect to frame i - 1, projected on frame i is too - - l , I - 1 = 31[~bt0~bi] r and the structure of _A~is: sm0 co !l _Ai= / s i n 0l cos ~o~ - sin (pi tcos 0~ . (A.3) 0 Rodrigues Parameters Rodrigues parameters are derived from the theory of t'mite rotations which, unlike angular velocities, cannot 138 z\ which show a better symmetry than the corresponding matrices computed with the Euler angles. Furthermore, the Rodrigues parameters can be evaluated from the elements r u of the rotation matrix ~ - l ~ r using, for example, the following formulas: i-1Z ,t 01 = @23 - r32)/(1 + rl i -~- r22 -4- r 3 3) / / 02 = (r31 - - rl 3)/( 1 q- rl i -I- r22 -t- r33 ) / / / tt (A.7) 03 = (r12 - r2 0/( 1 + r l 1 + r22 + r33)" iv For completenessl we report also the formulas which express the relations between Rodrigues and Euler parameters : / iI 01 = tg 89cos 89 - r 89 + ~o) 0; = tg 89sin xz(V - (p)/cos 89 + ~0) i-1 x (A.8) Lo3=tg 89 + cp). Orientation Parameters: A Proposal ix Fig. 13. Definition of Rodrigues vector Q to measure relative rotation between frame f-iX, t- 1y,, i-, Z and frame IX, iV, iZ. Qhas amplitude tan Z/2 and it is definedin such a way that, rotating frame i along the direction of Qby an angle ~, it is possible to duplicate frame i + 1 be composed with the parallelogram rule. It is possible, however, to define (for each finite rotation of amplitude Z) a finite rotation vector • (or Rodrigues vector) which is directed along the axis of rotation and has a module equal to t g / j 2 (Fig. 13). The composition of rotations is not commutative but it is associative and can be computed as follows (Q is the result of the consecutive rotations Ih and Q2): = (1~1 -}- 1~2 -I- [~2 X 1~1)/(1 -- [~1" 1~2)" (AA) As a result, it is possible to identify the relative orientation between two frames with a single t~ which represent the rotation axis and the amount of the finite rotation which allows one frame to duplicate the other. If the !/~ array of free variables is equated to the three Rodrigues parameters, it is possible tO derive the following structure for the ~- I_R~ and A~ matrices: Considering, for example, the shoulder joint, the three parameters which are proposed measure the following angles: 1) the angle between the humerus and an axis fixed in the body, 2) the angle between the humerus and another axis fixed in the body, orthogonal to the previous one, 3) the rotation of the humerus around its symmetry axis (Fig. 14). Let us caU these angles, respectively, ~, t, ~b. If i, i, k are the unit vectors fixed to the humerus, then the rotation matrix from frame i to frame i - 1 can be expressed as i-- 11~| = [ t - 1 ~~t - 1~~~-- i-k]. (A.9) k can be immediately projected onto frame i - 1 (we restrict ourselves to the superior half-space): [c~ 1 i- l_k= [cos fl , (A.IO) L(1 - (cos2 = + cos2/~)) 1/2 whereas the projections of i and j can be computed by using the intermediate unit vectors t o, t~, which are tangent to the two semicircles shown in the figure. t~ and te are not orthogonal but they define the same plane as i and ]. The computation then develops T, -1 2r- 02 -- 0 2 - - O l _ l _ l ~ t ~- 2(0102+03 1+0~-0~-032 2 1 2 2 2(0102-03) 1-t-01+02+03 L2(Q3O,+ 02) 2 -A'= 02 +022 +023 t 1 --03 +02 ) 2(Q203 -- 01) 03 ~? 2(0301 -- 02) 2(0203 + 01) 1+ 03--01 z 2 --0:: I (A.5) --02 1 --Oi 1 , (A.6) 139 I-1y k IZ ~'\I\'\, -- [1 Flg. 14. Definition of the proposed orientation parameters. ~- 1X, t- 1 y define the fixed frame (~- 1Z is orthogonai to the sheet and points up). ~Z is the longitudinal axis of the moving body and/~ is the corresponding unit vector. Point P moves on a semisphere. The first two orientation parameters (cq ~ are the angles between ~Z and ~- ~X, ~- ~Y, respectively. The third parameter is related to the rotation of the other two unit vectors of the moving body (/,j) on the plane tangent to the sphere in P. In particular, 1, and .~t are two unit vectors which are tangent, on the sphere, to the two semicircles which rotate around ~- ~X and ~ ~Y, respectively. On the tangent plane, the third orientation parameter ~ is the angle between the orthogonal couple of unit vectors j, j and the other orthogonal couple t~, !2, derived from the non orthogonal couple t,,.~ by means of vector sum and difference as follows: 1 9 ~ T 3 -R2~13) T =(-AiT 2 81 -- i - l~z = COS -111 fl/tg ct (1 - (cos2 a + cos2fl))l/2/tgo I cos c(tgfl t - ltp = (A.11) _ s i n fl (1 - (cos2 c~+ T ~ -115 !2 =(~-&)/I~--re II (AA2) ~b t- l j = __q sinq5 +d2 cos ~b. COS (]~ -}-!2 s i n T 2 -~l T 3 _R2 T3 G * A2) =(-A1 - 1 1 2 ---(--/~2 - ~ T 3 8 2 T3 --t~2 ~ 2 -R1-A1) 9T 2 T 3 T 3 * 2 -113~-[(-A1 8 1 -R2 - R e - R I - ~ I ) T2 T3 T3 2 _g14=[(d2 cosZfl))l/2/tg[ (!1 and t z are orthogonal), i- 1/=tl ~T3 -11o-(_A2 _R2_A3) sinct (A.13) Further analysis is needed to investigate the properties of these or similar parameters. 9T 3 T T3 * *T3 T3 ~ T _R 2 _ g 2 x ' J 2 ) ~ - ( _ a 2 _g 2 _R2_A2) "] ~ T3 T3 = E(alT 2 8, 8~ -G 2 g,a,) +rArZ/~r3Rr3/~ 2R 3 ~r3 k--1 - - 1 - - 2 - - 2 --1~--~11 / -KI 6 = [_A~!oa_AI] -117 = [a~I-o=&] -118 = [aT=-<!o~=glal] -119 = [-Ar!o~=-R1-AI] -1=o = [a~I_o~&] -1=~= [aP_RL/o, CGa=] -rArzmr3RrI 3R 2R A 1 -- 2--03 -- 2 -- 1-- 1A - 1 2 2 - - L-- 1 L~I Appendix -123 = [-A~'-/0s 3-Ra-A23 B -12~ = [a~!o~ Basic modules of the kinetic energy matrix -11=(_~50 -12:(_AL&) -13 = (2-R1-AL)r(2-RL-A 1) -1, = [(_~T2_R~=_RIal)+ (_AT2_RT=_&a0q -1, =(dT=_RT&) T2 T3 T " _K 7 - ( _A1 _R1 _R2 _A3 ) ~.8 ~ ~T2 (-A1 T3 -R1 -- - - L-- 2 -- 2-'L03 -- 2 -- 1-- 1A " Acknowledgment. The authors acknowledge Prof. E. Bizzi, from the Psychology Department of M.I.T., the cultural and scientific stimulus to explore these topics, which are vital for robotics but for which the neurophysiological contribute is essential. References -1~=(aT=gT&) -- 382 CG_&] K25-FAT3Rml 3R 2R A 1 T3 ~ -/~2 8 2 3 2 ) Benati, M., Morasso, P., Tagliasco, V.: The inverse kinematic problem in manipulator control. Internal Report, E.E. Dept., Genova Univ. 1980 140 Bisshop, K.E. : Rodrigues formula and the screw matrix. Trans. ASME, J. Eng. Ind. 91, 17%185 (1969) Brousse, P. : Cours de mtcanique. Paris : Colin 1973 Corben, H.C, Stelile, P. : Classical mechanics. New York: Wiley 1950 De Kleer, J. : Qualitative and quantitative knowledge in classical mechanics. (A.I. Laboratory, TR-352) Cambridge, MA: IV[IT Press 1975 Dillon, S.R. : Automated equation generation and its application to problems in control. Proceed. 15th Joint Automatic Control Conf., Austin, Texas, 1974 Flatau, C.I~: The future of generalized robotic manipulators. Proceed. N.S.F. Workshop on the Impact on the Accack Commun. of Required Res. Activity for General Robotic Manip., Univ. of Florida 1978 Hollerbach, J.M. : A recursive lagrangian formulation of manipulator dynamics and a comparative study of dynamics formulation complexity. AI Memo 533, MIT Artif. Intelk Labor, 1979 Horn, B.K.P., Raibert, M.H.: Configuration space control. AI Memo 458, M1T Artif. Intell. Labor, 1977 Luh, J., Walker, M., Paul, R. : Newton-Euler formulation of manipulator dynamics for computer control 2rid IFAC/IFIP Syrup. on Inform. Control Probl. in Manufact. Technol., Stuttgart 1979 Lur'6, L. : Mtchanique analytique. Paris: Masson 1968 Mart, D., Poggio, T. : From understanding computation to understanding neural circuitry. AI Memo 357, MIT Artif. Intell. Labor, 1976 Nevins, J.L., Whitney, D.E. : The force vector assembly concept. (C.S. Draper Laboratory, Report E-2754) Cambridge, MA: MIT Press 1973 Orin, D.E., Mc Ghee, R.B., Vukobratovich, M., Hartoch, G. : Kinematic and kinetic analysis of open chain linkages utilizing Newton-Euler methods. Math. BioscL 43, 107-130 (1979) Paul, R. : Modelling, trajectory calculation, and servoing of a computer controlled arm~ AI Memo 177, Stanford Artif. Intell. Labor, 1972 Raibert, M.H. : A model for sensorimotor control and learning. Biol. Cybernetics 29, 29-36 (1978) Sturges, R.: Teleoperator arm design program (TOAD). (C.S. Draper Labor, Report 3-2746) Cambridge, MA: MIT Press 1973 Uicker, J.J. : On the dynamic analysis of spatial linkages using 4 x 4 matrices. Ph~D. Thesis, Northwestern Univ. 1965 Van Trees, H.L. : Detection, estimation, and modulation theory. New York : Wiley & Sons 1968 Vukobratovic, M. : Dynamics of active articulated mechanisms and synthesis of artificial motion. Mech. Mach. Theory 13, 1-56 (1978) Whitney, D.E.: Resolved motion rate control of manipulators and human prostheses. IEEE Trans. Man-Mach. Syst. MMS-10, 47-53 (1969) Winston, P.H., Brown, R.I-I. (eds.): Artificial intelligence: an MIT perspective. Cambridge, MA: MIT Press 1979 Received: October 10, 1979 Prof. P. Morasso Istituto di Elettrotecnica Viale Causa 13 1-16145 Crenova, Italy