Anthropomorphic robotics

16
Biol. Cybernetics 38, 125 140 (1980) Biologioai Oymetios 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 work- ing 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 in- timately 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 move- ments of objects and/or their mutual interactions in a certain environment, according to a given task. * This work was supported by a CNR 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 manip- ulation 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 re- sults show, an artificial intelligent eye and a mechani- cal 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 dex- terity 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 manip- ulandum (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 kine- matic and dynamic phenomena underlying manip- 1 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

Transcript of Anthropomorphic robotics

Biol. Cybernetics 38, 125 140 (1980) Biologioai Oy metios �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 work- ing 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 in- timately 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 move- ments of objects and/or their mutual interactions in a certain environment, according to a given task.

* This work was supported by a CNR 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 manip- ulation 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 re- sults show, an artificial intelligent eye and a mechani- cal 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 dex- terity 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 manip- ulandum (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 kine- matic and dynamic phenomena underlying manip-

1 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

VISUAL COMPONENT

ANALYSIS pLANNING HANDLING

DEXTERITY J

COMPONENT

Y/2 . COORDINATE i CONTACT DYNAMIC ] COMPLIANCE

TRANSFORMATION FORCE FORCE MODULATION CONTROL CONqlROL

Fig. 1. Visual and motor components of manipulation dexterity

ulation, for the purpose of decomposing the corre- sponding 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 prob- lems, 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 manip- ulation tasks (holding against gravity, inserting, fast moving, and throwing) and we shall point out the importance of the mechanical impedance of the manip- ulator 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 com- putation~

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 interac- tions, like in arm dynamics.

The attractive feature of an analog model is that it solves equations simply by simulation and it is in- herently parallel.

In this view, we should revise the commonly used notion of computational economy (as the minimi- zation of the total number of arithmetic operations) which is particularly meaningful for measuring the efficiency of an algorithm implemented on a sequen- tial 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 exam- ple, to range limitations of some d.o.f., to obstacle avoidance or to optimiTation of some dynamic crite- rion (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, fore- arm, hand).

The kinematic and dynamic equations of a de- ceptively simple device like the human arm are non-

2 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 dynamic point of view, the former choice is closer to reality because most of the forearm mass rotates during prono- supination

127

Fig. 2. Mechanical structure of the human arm

linear, of course, and quite difficult to integrate analyti- cally, 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, manipu- lator. For this reason, even writing the equations becomes a complicated matter which can be solved practically only using sophisticated symbolic manip- ulation techniques (Sturges, 1973; Dillon, 1974). However, the explosive amount of mathematical for- mulas, which comes out of these procedures is of little use, on one hand, in helping to understand the prin- ciples of human arm mobility and, on the other hand, in determining appropriate control schemes for arti- ficial manipulators.

It is natural that shortcut solutions have been used in industrial robotics, which put complexity of manip- ulation 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 interac- tions between different d.o.f, are usually considered "unknown disturbances" and their effect is counter- acted by "stiff' (i.e. high gain) position servos which force each joint of the manipulator to follow a pre- scribed 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 pre- liminarly face the mathematical complexity of kine- matics 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 equa- tions, such complexity basically originates from mul- tiple 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 veloci- ties, etc,

At the computational level, this approach should allow us to determine a small number of compu- tational 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 litera- ture (Uieker, 1965; Paul, 1972; Horn and Raibert, 1978; Luh et al., 1978; Raibert, 1978; Vukobratovic, 1978 ; Orin et al., 1979 ; Hollerbach, 1979). Our contri- bution is characterized mainly by the following fea- tures: 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 model- ing, and the last feature is related to the fact that, in a real manipulation environment, the physical parame- ters (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 fore- arm, 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 affixed to cones 1, 2, 3, respectively. 01, 0z, 03 coincide with the joints, la, 12, l 3 are the lengths of the linkages and G1, G2, G 3 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_R 3 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 - t i ' . l - l : : i - lkq-r i i !/it_ill t_kl_a] r -i: l~ - t J -L- i -a l

(it, ]i, kt and i l_ 1, Ji- 1, k t - 1 are the unit vectors of frame i and i - 1, respectively).

The elements of a rotation matrix are not inde- pendent 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

3 Notation: arrays are denoted by underlining; lower case sym- bols 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 common practice to re- present 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 prob- lem 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 three- dimensional, since the shoulder is a spherical joint and its elements can be equated to the orientation parame- ters (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 de- scribe 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 move- ments, 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 parame- ters, 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 coor- dinates 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"03 P

~ = ~ 1 lr0102 �9 ~ 11R2 2r0203 -Jr ~ 11R22R 3 3r03 P .

130

ARM CONFIGURATION

(0

(o

(o

0 13)'

0 12)'

0 Ii)'

0 0 ) '

(0 1 0 ) '

(0 0 i ) '

q3 q2 ql

(X Y Z )' P P P

(rll r21 r31)'

(r12 r22 r32)'

~ (r13 r23 r33)'

lF~g. 7. Analog model of the computation process from arm configuration gr = [gr!/arar ] to hand position 0fp YvZv coordinates of the point P of the hand) and to hand orientation (r u: elements of the global rotation matrix). The blocks of the model perform vector-matrix multiplication, Le. they compute weighted sums of the input array components where 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

r l = 0 , f 2 = 0 , r 3=-

1 2

we can write the following equations

[-Oxp ' o yp, Oz/,] r=o_Rlr I +O_R 1 l_Rz_r2+O_R1 I_R 2 2_R3_.p 3

(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 comput- ed from the elements of ~ 3 by using one of the formulas (A.2, A~7) of the Appendix A. It is also in- teresting to note that these parameters need not nec-

4 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 computat ion: from the rotation of the joints to the motion of the hand.

On the other hand, in many manipulation tasks the prescribed actions are naturally expressed as desired trajectories of the hand. Therefore, an inverse com- putation 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 displace- ments, 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)

This mapping hardly allows an analytical inver- sion, 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.

3.3. Velocity of Joints and Linkages

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 :

03,

0"12 =0"12,1 -}- 0)1 (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 de- rivatives of the free coordinates (e.g. the Euler angles); and this allows us to identify a second computat ion 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/(where A 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 pseudo- inverse 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 heuris- tics in the determination of the desired trajectory of the terminal device, possibly breaking the trajectory into a number of segments

131

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,~,

2~02.1 = 32[q2 (3.5) 3_033,2 ~-_A3~ 3

where _A 1 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 ex- press all the vector components in the same frame:

I_(~D I ~_I~L~ 1

2_m 2 = A ~ 2 + 2R,_A d l (3.6)

3(,93 = _A3.~3 + 3_a2_Ad2 + 3_R 22_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 ex- pressed as follows:

V 1 = 0

V 2 ~ V 1 + ( I ) 1 X ro lo2

V 3 = 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 lxr0102=det , _.a~2_q 1 9ra~ ,

0 11 J

where air1, a T a r - -12,-13 are the first, second, and third row of _A 1, 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 , d d , , .

132

>

C)

~e �9 H O Z

q

:>

H >

U r~

i I

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 . . / i s 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

l v2=/13~1 (3.7)

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

- - ~ n 2

o ~ On the other hand, _~fN = [-m2, - _ml, 0] r [B1,1/2, Zt3] which is identi- cal to the previous matrix

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).

4. Dynamics of Manipulation

A convenient way of writing the dynamic equations of the manipulator is to follow the Lagrangian for- mulation which, once the free coordinates have been selected (ql, q2 ..... q~), allows us to write the following set of simultaneous equations

d 8T 8T Q~= dt 8i k 8q~ i= 1 ..... 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 equa- tions 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

T~, 9)= �89 2 E Is~?tjitk = �89 (4.2) ] k

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 :

Q,=ZI,fft"k+ZZCjk,itjih, i=1, . . . ,n k j 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

depend upon the I~k's according to the following relations :

1[ Olik OI ' j - -VI :k l i , j , k = l , n 7 . (4.3) CSk~ = 2 [Oqs + ~qk ~q~ J .. . .

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 com- putation 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 attrac- tive side of a table based model is that, during real time control, the complex evaluation of non linear parame- ters is simply reduced to a table look-up. However, this type of representation buries in the tables the de- pendence 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 table- representation of complicated functions is very un- likely 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 de- scribe 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 parame- ters 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 com- pute 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

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

133

the elements o f / on mass distribution related coef- ficients, which is important in model identification.

4.1. Kinet ic Energy and Inertial Forces

Since the kinetic energy matrix !, as we showed in the previous section, is a fundamental block for the com- putation 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: 1/1/31i i1 where the symmetry of I implies that lii's are sym- metric 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)

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

8 Inertia operators map vectors into vectors. For a given frame, an inertia operator is represented by a symmetric matrix, which we denote by io,

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 dex- terous manipulation (hammer, ax, tennus racket, etc.) at least approximately satisfy such requirements. According to these hypotheses the following notation can be used:

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 _K i matrices is listed in the appendix):

T a = 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 com- pute lb. Applying then (3.6) and (3.7), we obtain the following result :

T b = V2dal ,~rN5)2 + 1/2M2d2l~rK_,,~l

+ M3d311)T_K@3 -}- M3d31,.~rKs)2

+ Mad31~qT-K9~a + M3daI~ TI-s o!t3

+ M 41Af_Iq + 3d31j _K12ql + 1/2M3d3l~rN~3~t + 1/2M3d31~TI_~t4)2

+ 1/2M3d31z[qrN, 5~i" (4.6)

Finally, for the computation of the last element of the kinetic energy, it is sufficient to apply directly (3.6),

Tc = I / 2 ~ T g l 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 . (4.7)

It is now possible to sort out the contributions of T,, T b, 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)

- - Z - -

ii 2 ---/21 -- (M31112 + M2d211)-Ks + M312K-6

+ M / d ~ K~ + M/~I~K_ ~i +M/~l~g~:+g~9+gl,, I_13 = I._Tl = M ad311~ 7 -F M 3d31212~9 -t- [2~ 24

_ _ T _ _ T

!23 ----/32 -- M3d312-K1o +/~23"

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 com- puted from the potential energy U as follows:

OU Q~ = i= 1, ..., n. (4.9)

Oqt

The potential energy is a function of arm con- figuration 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 particu- lar 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 :

~ = ~ 1 lr01Gt

~ = ~ 1 lro~o~ + ~ 11R~ro~o~ 1 0 1 22 0 ~176 ro~o2+ RIR2 r02%+ RllR22R33r03(~3

and using the following notation for convenience

irow~ =-d_t=-[O,O, dt]T i=1,2 ,3

ir_o,o, + = s -- [O, O, li] r i=1 ,2

we can obtain the following expression for the poten- tial energy :

U = MIg[~

+ Mz# [~ + ~ 1-R2d2] 3 +M3g[~176176 11R22R3d313, (4,10)

135

(0 0 M3d3)'

(0 0 M2d2)' + + (0 0 M312 )'

(0 0 M dl)' + + (0 0 M~I 1 ) + + (0 0 M311)'

(o o g)

525252 7

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. 9r = ~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 com- ponent (i.e. the component along the z-axis) must be considered.

An analog model which corresponds to the com- putations 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 me- chanics 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 compu- tational 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 arn l .

If we try to t'md an explicit formulation of d, C~'s, Q0, we should have to develope the partial

derivatives of 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 esti- mation 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 vari- ables (the inertial parameters I.lk, the Christoffel sym- bols 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 iden- tification problem, which will be briefly discussed in the following section.

136

T a N e l

Model modules Multiplies Adds Filters

Updating rotation matrices 45 12 Mapping f , from .q to x 21 18 Jacobian matrix o f f 42 Kinetic energy matrix ~ 500 ~ 300 Inertial forces due to 49 42

acceleration Matrices related to 312 196

Christoffel symbols Inertial forces due to 392 336

cross-velocity terms Potential energy 46 31 Gravity dependent forces 7

Total ~ 1053 ~ 1051 245

A~ GEO~TRY COEFFICIENTS

&~(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 cor- responds 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 estimat- ing them we tried to take into account the symmetry and systematic sparseness of some of the matrices of the model

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 manipu- lator 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 neuro- physiological 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

The working model of manipulator dynamics that we described in the previous section depends on coef- ficients 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 input- output 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 i= 1,..., n. k 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 coef- ficients 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 identi- fication problem. In particular, this can be done by performing small oscillations across an equilibrium configuration.

137

to

F'[~. 11. Identification of manipulator arm coefficients. Input torques Q"(t) induce small oscillations of the free variables around a con- figuration 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

DYNAMICS

--3 COEFFICIENTS

According to the theory of small oscillations, cross- velocity terms can be neglected, gravity dependent terms can be linearized (i.e. reduced to terms pro- portional to displacements), and the kinetic energy matrix can be assumed to be constant. With these hypotheses, the input/output equations reduce to the

t - 1 R t :

cos ~p~ cos r - sin W~ cos 0~ sin (pC

- (cos W~ sin r + sin ~ cos 0~ cos (p~)

sin W~ sin 0~

following ones:

Q~+Q~(-q~ 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).

iZ X t I-lz iy

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, t Z (t = 1 for the humerus, 2 for the forearm, 3 for the hand). N : axis of nodes; 0: nutation angle; T#: precession angle

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:

sin ~i cos (p~ + cos W~ cos 0 t sin c# t

-- sin,& sin ~0~ + cos,:~ cos 0~ cos :#~ -- cos ~ sin 0~

sin 0 t sin @i 1 T sin 0 i cos q)~|

cos 0~ J

(A.1)

and the Euler angles can be evaluated from the elements r u of the rotation matrix ~- 1R~r using, for example, the following formulas:

0 = C O S - l r 3 3

~sin l(r31/sinO ) if r3e/SinO~O ~= [lr--sin-l(r31/sinO) if r32/sinO>O

(A.2) ~sin-l(r13/sinO) if r23/sinO>=O

qO= [Tz_sin_l(rxa/sinO ) if r23/sinO<O

The angular velocity of frame i with respect to frame i - 1, projected on frame i is too = 31[~bt0~bi] r - - l , I -1 and the structure of _A~ is: sm0 co !l _Ai = / s i n 0l cos ~o~ - sin (p i . (A.3)

tcos 0~ 0

Rodrigues Parameters

Rodrigues parameters are derived from the theory of t'mite rotations which, unlike angular velocities, cannot

138

i-1 x

z\ i -1Z

,t /

/ /

/ /

t t /

i I

i v

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:

01 = @23 - r32)/(1 + rl i -~- r22 -4- r 3 3)

02 = (r31 - - rl 3)/( 1 q- rl i -I- r22 -t- r33 ) (A.7)

03 = (r12 - r2 0/( 1 + r l 1 + r22 + r33)"

For completenessl we report also the formulas which express the relations between Rodrigues and Euler parameters :

01 = tg �89 cos �89 - r �89 + ~o)

0; = tg �89 sin xz( V - (p)/cos �89 + ~0) (A.8)

Lo3 =tg�89 + cp).

i x

Fig. 13. Definition of Rodrigues vector Q to measure relative ro- tation between frame f-iX, t- 1 y,, i-, Z and frame IX, iV, iZ. Q has amplitude tan Z/2 and it is defined in such a way that, rotating frame i along the direction of Q by 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 tg / j2 (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)" ( A A )

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:

-1 2r- 02 - - 0 2 - - O 2 ( 0 1 0 2 + 0 3 )

l _ l _ l ~ t ~ - 1 2(0102-03) 1+0~-0~-032 2 2 2 1-t-01+02+03 L2(Q3O, + 02) 2 ( Q 2 0 3 - - 0 1 )

t 1 03 ~? --02 2 -A'= 02 +02 +02 2 3 --03 1 1 ,

+02 --Oi

Orientation Parameters: A Proposal

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

2(0301 -- 02)

2(0203 + 01) 1+ z 2 : 03--01 --0:

I T,

(A.5)

(A.6)

139

I - 1 y

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:

sinct i - l~z = COS fl/tg ct

(1 - (cos2 a + cos2fl))l/2/tgo (A.11)

I cos c(tgfl t - l tp = _ s i n fl

(1 - (cos2 c~ + cosZfl))l/2/tg[

(!1 and t z are orthogonal),

i - 1 / = t l COS (]~ -}- !2 s i n ~b (A.13)

t- l j= __q sinq5 +d2 cos ~b.

Further analysis is needed to investigate the properties of these or similar parameters.

!2 =(~-&)/I~--re II (AA2)

A p p e n d i x B

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=_&a 0q -1, =(dT=_RT&) -1~=(aT=gT&)

- - T 2 T 3 T "

_K 7 - ( _A 1 _R 1 _R 2 _A 3 ) ~ . 8 ~ ~ T 2 T 3 T 3 ~

(-A1 -R1 -/~2 8 2 3 2 )

=(-Ai 81 -R2~13) 1 9 T 2 ~ T3 T

- - ~ T 3 T ~ -11o-(_A2 _R2_A 3) =(-A1 -~l _R2 G A2) - 1 1 1 T 2 T3 T3 *

--(--/~2 8 2 --t~2 -R1-A1) - 1 1 2 - - ~ T 3 T3 ~ 2

�9 T 2 T3 T3 * 2 - 1 1 3 ~ - [ ( - A 1 8 1 -R2 - R e - R I - ~ I )

T 2 T3 T3 2 T

�9 T3 T3 * * T 3 T3 ~ T _ g 1 4 = [ ( d 2 _R 2 _ g 2 x ' J 2 ) ~ - ( _ a 2 _g 2 _R2_A2) "]

= E(al 8, 8~ -G g,a,) - 1 1 5 T2 ~ T3 T3 2

+rArZ/~r3Rr3/~ 2 R 3 ~r3 k--1 - -1 - - 2 - - 2 --1~--~11 /

-KI 6 = [_A~!oa_AI]

-117 = [a~I-o=&] -118 = [aT= -< !o~=g la l ] - 1 1 9 = [-Ar!o~=-R1-AI] -1=o = [a~I_o~&] -1=~ = [aP_RL/o, CGa=]

-rArzmr3RrI 3R 2R A 1 - 1 2 2 - - L-- 1 L~I -- 2--03 -- 2 -- 1-- 1A

-123 = [-A~'-/0s 3-Ra-A23

-12~ = [a~!o~ 382 CG_&] K25-FAT3Rml 3R 2R A 1 -- - - 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 stim- ulus to explore these topics, which are vital for robotics but for which the neurophysiological contribute is essential.

R e f e r e n c e s

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 manipu- lator dynamics and a comparative study of dynamics for- mulation 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 manipu- lator 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 under-

standing 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. : Kine- matic 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